PHP preg_match, wenn pattern ist eine variable
Wenn das Muster eine variable ist, die in preg_match, ist es richtig das die syntax für die Verwendung der Trennzeichen?
if (!preg_match("/{$_SERVER["SERVER_NAME"]}/",$variable)){
.......
}
- Stellen Sie sicher, dass Flucht-dynamischen regex.
- Ist das eigentlich die regex, die Sie verwenden, oder ein Vereinfachtes Beispiel?
- Sind Sie wollen, ersetzen Sie die exakte Zeichenfolge
{$_SERVER["SERVER_NAME"]}
mit dem Inhalt$variable
oder sind Sie wollen, ersetzen Sie den Wert von$_SERVER["SERVER_NAME"]
eingeschlossen in swirly Klammern mit dem Wert des$variable
? - Khan ist eigentlich die regex, die ich benutze
- Warum dann nicht so etwas wie
strstr
oderstrpos
nicht mit regexes überhaupt? - Ich bin mir nicht ersetzen, aber vergleichen, wenn die variable $unterscheidet sich vom $_SERVER["SERVER_NAME"]
- Khan, weil vorher war es if (!eregi(........)) so habe ich ersetzt mit preg_match, aber ich denke, du hast Recht!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den richtigen Weg um dies zu umgehen, ist die Verwendung
preg_quote()
, um sicherzustellen Zeichen mit spezieller Bedeutung in regulären Ausdrücken korrekt escaped:Natürlich ist dies an sich ist nicht sehr nützlich Ausdruck, denn Sie können auch schreiben dies: