Sto usando preg_replace
per sfuggire caratteri speciali:
$tmpStr=preg_replace("/\?/", "\?", $tmpStr);
$tmpStr=preg_replace("/\#/", "\#", $tmpStr);
$tmpStr=preg_replace("/\^/", "\^", $tmpStr);
$tmpStr=preg_replace("/\&/", "\&", $tmpStr);
$tmpStr=preg_replace("/\*/", "\*", $tmpStr);
$tmpStr=preg_replace("/\(/", "\(", $tmpStr);
$tmpStr=preg_replace("/\)/", "\)", $tmpStr);
$tmpStr=preg_replace("/\//", "\/", $tmpStr);
Ma io non sono in grado di sfuggire $
utilizzando la stessa funzione:
$tmpStr=preg_replace("/\$/", "\$", $tmpStr);
E anche quando uso la dichiarazione di cui sopra tutti gli spazi diventano sostituito da $
e $
non viene scappato.
Come Escape il simbolo del dollaro in modo corretto?
Vorrei trovare questa risposta più utile se ha dato la motivazione per l'uso di preg_quote invece di preg_replace. Inoltre, sarebbe bello sapere perché l'approccio preg_replace non ha funzionato per sfuggire al segno del dollaro. –
@RandallStewart "preg_quote invece di preg_replace"? Queste due funzioni non sono sostituibili, non puoi usarne una al posto dell'altra, usa 'preg_quote' per sfuggire ai valori nelle stringhe di espressioni regolari (usate all'interno di 'preg_replace') –