Problem mit preg_replace
basti_p
- php
Hallo,
ich möchte in einer HTML-Datei alle Vorkommen von
<script type='text/javascript'>function zX() ... beliebige Zeichen ... </script>
entfernen.
Mein bisheriger regulärer Ausdruck sieht so aus:
"/<script type='text/javascript'>function zX()[.*]</script>/"
Leider meldet PHP: "Empty regular expression" - bitte helft mir auf die Sprünge.
Vielen Dank und Grüße Basti
Hallo,
Mein bisheriger regulärer Ausdruck sieht so aus:
"/<script type='text/javascript'>function zX()[.*]</script>/"
Leider meldet PHP: "Empty regular expression" - bitte helft mir auf die Sprünge.
Runde Klammern dienen dem Einfangen. Du willst offensichtlich *nichts* einfangen, was Dir PHP meldet. Eckige Klammern sind für Zeichenklassen da, innerhalb von Zeichenklassen haben "." und "*" keine besondere Bedeutung und stehen für sich selbst.
Siehe PHP-Handbuch, Meta-Zeichen in PCRE.
Maskiere Deine runden Klammern, ersetze die eckigen durch runde Klammern - ja und dann sorge noch dafür, dass Dein Ausdruck genügsam wird, sonst findet er möglicherweise mehr, als Du willst.
Es ist bei Deinem Ausdruck eine gute Idee, ein anderes Delimiter-Zeichen als den Slash zu verwenden.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
vielen Dank für die hilfreichen Hinweise! Jetzt funktioniert es:
"#<script type='text/javascript'>function zX().*</script>#U"
Grüße Basti