/ / Php regex jak dodać ukośnik odwrotny ""? - php, regex, .htaccess, backslash

PHP regex jak dodać ukośnik ""? - php, regex, .htaccess, backslash

Chcę dodać ukośnik odwrotny "" przed wszystkimi nie alfanumerycznymi znakami, takimi jak "jak się masz :)", więc użyłem tego:

$code = preg_replace("/([^A-Za-z0-9])/i", "$1", $code);

Ale to nie działa, zamiast tego po prostu echo "1 dolar". Co robię źle?

Próbowałem też

$code = preg_replace("/([^A-Za-z0-9])/i", "\$1", $code);

Ale nie zadziała.

Odpowiedzi:

4 dla odpowiedzi № 1

Potrzebujesz cztery ukośniki odwrotne:

 $code = preg_replace("/([^A-Za-z0-9])/i", "\\$1", $code);

Powodem jest to, że ukośnik odwraca sięw kontekście łańcucha PHP (nawet pojedyncze cudzysłowy). Aby PCRE mógł zobaczyć choćby jeden, potrzebujesz co najmniej dwóch. Ale żeby nie zostać źle zinterpretowanym, aby zamaskować zastępczy symbol zastępczy, musisz podwoić to jeszcze. (Btw, trzy backslashes również przypadkowo działają.)


0 dla odpowiedzi nr 2

PRZYKŁAD:

<?php
$str = "Is your name O"reilly?";

// Outputs: Is your name O"reilly?
echo addslashes($str);
?>