perche' nelle stringhe delimitate dai double quote "" il parser di php interpreta alcuni caratteri speciali ed espande le variabili.Originariamente inviato da wartpro
PS: perchè ESCAPI il simbolo del dollaro due volte?
come ben sai, le variabili in php sono precedute dal dollaro seguito dal nome della variabile
quindi in una stringa tipo "ciao $mondo" il parser cerchera' di interpretare $mondo come variabile
per farlo interpretare come stringa bisogna escappare il dollaro: "ciao \$mondo"
andando avanti, in una regex definita tra le double quotes tipo
"/ciao \$mondo/"
l'escape del \$ verra' gia' tolto dal parser prima di andare alla pcre, quindi alla pcre arrivera' il $ nudo, che lo interpretera' a modo suo, cioe' come meta-carattere di fine stringa
quindi bisogna escapparlo una seconda volta, "/ciao \\$mondo/", ed in questo modo sia il php che il pcre lo interpreteranno come carattere dollaro senza altri significati.
in alternativa basta definire la regex con apici singoli:
'/ciao \$mondo/'