Mein ocde kann - nachdem ich jetzt noch einmal geschaut habe - gar nicht richtig funktionieren, da das vBulletin anscheinend ein "\" vor der 1 im preg_replace unterschlagen hat.
Jetzt sollte es auch mit Sonderzeichen in der URL funktionieren:
Vorraussetzungen:
"&" muss in "%amp;" (jeweils ohne ") umgeschrieben werden, da das & bekanntlich ein Trennzeichen in der URL zwischen den Parametern darstellt. Alle anderen Sonderzeichen müssen in das entsprechende Entity umgeschrieben werden. Leerzeichen können wie gewohnt weiter verwendet werden.
ü -> ü
ö -> ö
...
Bspws:
"größer" gelb markieren:
"Lorem ipsum dolor sit amet":
Jetzt sollte es auch mit Sonderzeichen in der URL funktionieren:
PHP-Code:
<?php
$wort = str_replace('%amp;', '&', $_GET['wort']);
$text = '<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>größer <strong>Lo</strong>rem ipsum dolor
sit amet...</p>
</body>
</html>';
for($i = 0; $i < strlen($wort); $i++) {
$suchmuster .= $wort[$i] . "((\<(.*)\>)?)";
}
$text = preg_replace("/((<[^>]*)|$suchmuster)/ie",
'"\\2"=="\\1"? "\\1":"<span style=\"background-color:yellow;\"><b>\\1</b></span>"', $text);
echo $text;
?>
"&" muss in "%amp;" (jeweils ohne ") umgeschrieben werden, da das & bekanntlich ein Trennzeichen in der URL zwischen den Parametern darstellt. Alle anderen Sonderzeichen müssen in das entsprechende Entity umgeschrieben werden. Leerzeichen können wie gewohnt weiter verwendet werden.
ü -> &uuml;
ö -> &ouml;
...
Bspws:
"größer" gelb markieren:
Code:
http://domain.com?wort=gr%amp;ouml;%amp;szlig;er
Code:
http://domain.com?wort=Lorem ipsum dolor sit amet
Kommentar