[PHP] frage zu preg_match

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Habe aus einem anderen Script folgendes

PHP:
 return (preg_match("`<a.*href=(\"|')?".$SITE."/?(\"|')?.*>`Ui", $ret['content']) && !preg_match("`<a.*href=(\"|')?".$SITE."/?(\"|')?.*rel\s*=\s*(\"|')nofollow(\"|').*>`Ui", $ret['content'])) == 0 ? 0 : 1;

In $ret['content'] ist vorhanden domain.de/?ref=xyz.
Wenn ich in $site nur domain.de drin habe erhalten ich 1 zurück, aber wenn ich es mit dem ganzen link habe geht es nicht. Das liegt wohl an dem ? in dem link. Aber ich weiß gerade nicht wie ich das ändern muß.

Kann wer helfen?
 
Das Fragezeichen, das in der URL stehen soll muss escaped werden (-> \? statts nur ?), weil das Fragezeichen in Regex eine Funktion hat und soweit es als Text verwendet werden soll escaped werden muss.
 
Noch irgendwas was in ner url vorkommen kann und escaped werden müßte?Oder gibt es dafür direkt ne Funktion?