[PHP]preg_replace und die Sonderzeichen...

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

ich habe folgende Funktion mir erstellt:

PHP:
function change($str) {

$result = $db->query("SELECT bid,wort FROM table"); 
while($daten = mysql_fetch_array($result)) {
$str =  preg_replace('~(^|\W)('.$daten['wort'].')($|\W)~i','\\1<a href="#" onclick=\'window.open("datei.php?bid='.$daten['bid'].'", "moo", "toolbar=no,scrollbars=yes,resizable=yes,width=700,height=250");\'"><img src="images/grafik.gif" border="0">\\2</a>\\3',$str); 
}

 return $str;
}

Also Ziel ist es eben, dass er erst die Worte aus der Datenbank ausliest und dann im Text überprüft, ob das Wort vorkommt. Wenn es vorkommt, dann soll er es erstetzen mit dem Wort und einem Link darum.....das funktioniert ja auch alles, allerdings:

Wenn ich das Wort "auto" habe, dann ersetzt er es mir in nem normalen Text auch richtig. Aber wenn ich www.auto.de in einem Text stehen habe, dann ersetzt er mir auto auch....also in der URL ersetzt er es mir auch!

Gibt es irgendwie eine Variante um zu verhindern, dass er es mir in URLs auch ersetzt? Denn das Wort autohaus ersetzt er mir das auto auch nicht, also er scheint nur Probleme mit dem Sonderzeichen davor zu haben. :roll:
 
Äh und das heißt?...:(:ugly:

Dann sag nichts dazu? Was soll dein Sinnloses posting dann?
Und wehe du weinst wegen dem roten popel.. :p

Danke....denn das ist ein richtiges Problem. Ich kann zwar nen Punkt davor ausschließen, aber diese Varianten wandelt er alles um obwohl er es nicht soll:


Er hat allgemein mit Sonderzeichen Probleme. Also auch, wenn ich www.domain.de/auto/index.php oder www.domain.de/auto.php habe, ändert er es immer um....

Geht es, dass ich https://www., https:// und / auschließe?