Ich möchte aus einer html-Datei einige Script-Tags ersetzen mit preg_replace, allerdings z.b. Keines welches den Text 'compressed' enthält.
Dieses soll die Funktion nicht ersetzen:
Mein Problem ist, dass mein preg_replace immer trifft (und ersetzt), auch mit diesen patterns:
Diese werden korrekt ersetzt:
Hat jemand von euch die zündende Idee warum mein Lookahead / Lookbehind nicht funktioniert? Ich nutze PHP 5.4.
Über Lösungsvorschläge wäre ich sehr dankbar.
LG r4w
PHP-Code:
$pattern = '/\<script .*(?!compressed)<\/script>/';
$ausgabe = preg_replace($pattern, '-SCRIPT', $subject);
Dieses soll die Funktion nicht ersetzen:
HTML-Code:
<script type="text/javascript" src="/compressed/head-02c9554333fdc910ef73aec9a.merged.gz.js"></script>
Mein Problem ist, dass mein preg_replace immer trifft (und ersetzt), auch mit diesen patterns:
PHP-Code:
$pattern = '/\(<script).*(?!compressed).*<\/script>/';
$pattern = '/\(<script).*(?<!compressed).*<\/script>/';
$pattern = '/\(<script).*(?!compressed).*(<\/script>)/';
$pattern = '/\(<script).*(?<!compressed).*(<\/script>)/';
Diese werden korrekt ersetzt:
HTML-Code:
<script type="text/javascript" src="/some-url/jquery-geturlparam.js"></script> <script type="text/javascript" src="/some-url/some-script.js"></script> <script type="text/javascript" src="/some-url/some-script2.js"></script>
Hat jemand von euch die zündende Idee warum mein Lookahead / Lookbehind nicht funktioniert? Ich nutze PHP 5.4.
Über Lösungsvorschläge wäre ich sehr dankbar.
LG r4w
Kommentar