String Maskierung für regular expression (escape)

Mik3e

Erfahrenes Mitglied
Hi zusammen,

Ich brauche einen kleinen Tipp, wie ich folgenden in folgendem regulären Ausdruck Fehler / Mißbrauch verhindern kann:

PHP:
$newProductName=preg_replace('/(' . $searchQuery . ')/i', '<strong>$1</strong>', $productName);

Es geht dabei um die Variable $searchQuery, die bestimmte Sonderzeichen nicht enthalten darf, da es sonst die preg_replace schmeißt ( [{/ etc.).

Hat jemand damit Erfahrung? Oder gibt es eine spezielle Funktion zum "vor-maskieren" für preg? Bzw. würde mir schon eine Liste helfen, in der alle "verbotenen" Zeichen enthalten sind.

Danke & Ciao,
Mike
 
Mit der preg_quote()-Funktion können die Metazeichen von Regulären Ausdrücken maskiert werden.

Aber wenn im Suchmuster gar keine Reguläre Ausdrücke zugelassen sind, wieso suchst du dann überhaupt mit einer Funktion für solche?
 
Hi,

Danke, hab die Funktion kurz vor Deiner Antwort gefunden. Die $serchquery kommt per $_GET (input) mittels xajax daher, d.h. da kann alles mögliche drinnenstehen. Darum muss ich den Text zuerst maskieren...

Ciao,
Mike
 
Ich glaube, worauf Gumbo hinaus will ist die Tatsache, dass es schnellere Methoden gibt, um Strings zu ersetzen, wie bspw. str_replace() ....und wenn du keine regulären Ausdrücke im Suchmuster benötigst, es keinen Grund gibt, auf deren Einsatz zu Verzichten.
 
Zurück