M
Mr. Snoot
Gast
Hio,
ich formatiere in einem Text Suchbegriffe gelb. Dazu wird der ausgegebene Text mit preg_replace durchsucht und Suchbegriffe entsprechend ausgezeichnet.
Der Code dazu sieht so aus:
Eigentlich werden damit nur Wörter außerhalb von <...> ersetzt, damit bspw. Links nicht zerstört werden wenn der Suchbegriff in href oder so auftaucht.
Jetzt hab ich auf einer Seite Javascript in einem <a>-Tag und plötzlich werden bei der Ausgabe alle single quotes darin escaped.
So wird aus:
plötzlich
Schuld daran ist der Modifikator e, der eben single quotes escaped.
Was kann ich denn nun tun? Den Modifikator brauch ich, weil im im Ersetzungsaudruck single und double quotes vorkommen. Aber eigentlich sollte doch in dem <a>-Tag von vornherein gar nichts ersetzt und damit auch nicht escaped werden!?
ich formatiere in einem Text Suchbegriffe gelb. Dazu wird der ausgegebene Text mit preg_replace durchsucht und Suchbegriffe entsprechend ausgezeichnet.
Der Code dazu sieht so aus:
PHP:
$inhalt = preg_replace("/((<[^>]*)|$search_str)/e", '"\2"=="\1"? "\1":"<a class=\"suchbegriff2\" name=\"suchanker\">\1</a>"', $inhalt);
Eigentlich werden damit nur Wörter außerhalb von <...> ersetzt, damit bspw. Links nicht zerstört werden wenn der Suchbegriff in href oder so auftaucht.
Jetzt hab ich auf einer Seite Javascript in einem <a>-Tag und plötzlich werden bei der Ausgabe alle single quotes darin escaped.
So wird aus:
PHP:
<a class="switch_weiter_pfeil" onclick="fet('weiter', document.getElementById('switch_text').firstChild.id, document.getElementById('switch_bild').firstChild.id, 'de', 'fet')" href="javascript:void(0);">
PHP:
<a class="switch_weiter_pfeil" onclick="fet(\'weiter\', document.getElementById(\'switch_text\').firstChild.id, document.getElementById(\'switch_bild\').firstChild.id, \'de\', \'fet\')" href="javascript:void(0);">
Schuld daran ist der Modifikator e, der eben single quotes escaped.
Was kann ich denn nun tun? Den Modifikator brauch ich, weil im im Ersetzungsaudruck single und double quotes vorkommen. Aber eigentlich sollte doch in dem <a>-Tag von vornherein gar nichts ersetzt und damit auch nicht escaped werden!?