1 2
$contents =~ s/(<?php.*?>)/ /gsi; $contents =~ s/<\s*!--\s*(.*?)\s*--\s*>//gsi;
2011-04-26T17:26:37 pqHmmm, danke, habe das mal eingebaut und ausprobiert.$contents =~ s/(<\?php.*?\?>)/ /gsi;
<?php echo "Aktualisierung am ".date("d.m.Y",filemtime(basename($_SERVER["PHP_SELF"]))); ?>
<?php echo $siteRoot ?>
<a href="<?php echo $siteRoot ?>index.php">© domain.de</a>
1
2
3
4
5
6
7
8
9
10
11
12
13
$ perl -wE'
$s = q{anfang <?php
echo get_pfad();
?> ende};
$s =~ s/(<\?php.*?\?>)/ /gsi;
say $s;'
anfang ende
$ perl -wE'
$s = q{anfang <?php echo "Aktualisierung am ".date("d.m.Y",filemtime(basename($_SERVER["PHP_SELF"]))); ?> ende};
$s =~ s/(<\?php.*?\?>)/ /gsi;
say $s;'
anfang ende
$contents =~ s/(<!--.*?-->)/ /gsi;
$contents =~ s/(<!--.*?-->)/ /gs;
2011-04-26T19:59:47 newperlerAnalog wäre für das Entfernen von HTML-Kommentaren dann das richtig:Danke!Code: (dl )$contents =~ s/(<!--.*?-->)/ /gsi;
2011-04-28T06:39:20 newperlerWie man einen HTML-Parser in ein vorhandens Script einbindet, weiß ich nicht, der Author des Scripts hat das Entfernen auch mit anderen Tags auf dem oben beschriebenen Weg erreicht, siehe z.B. <!--nosearch--><!--/nosearch-->. Vielleicht ergibt sich daraus ja ein Tipp?
<?php irgendwas ?>, die gefundenen Tags sollen komplett aus $contents gelöscht werden.
<!-- irgendwas -->, die gefundenen Tags sollen komplett aus $contents gelöscht werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
use HTML::TreeBuilder; # TreeBulder-Objekt anlegen my $tree = HTML::TreeBuilder-new(); # HTML-File einlesen $tree->parse_file($filename); # HTML aus String einlesen $tree->parse($htmlinput); # weitere Zeilen: $tree->parse($htmlinput2); $tree->eof(); # eingabe beendet # Ausgabe my $output = $tree->as_HTML();
my @htmlparts = map {$_->as_HTML()} $tree->guts();
$contents =~ s/<\s*!--nosearch--\s*>\s*(.*?)\s*<\s*!--\/nosearch--\s*>//gsi; # remove NOSEARCH section
$contents =~ s/<\?\s*php.*?\?>//gsi;
$contents =~ s/(<\?php.*?\?>)/ /gsi;