get_magic_quotes_gpc()
является 0
,
Если я использую preg_replace()
с этими массивами:
$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"';
$pattern[0]="#>#";
$pattern[1]="#<#";
$pattern[2]="#&#";
$pattern[3]="#"#";
$pass=preg_replace($pattern, $replace, $pass);
Работает за исключением обратной косой черты и одинарных кавычек.
Я попробовал это:
$replace[5]="\\";
$pattern[5]="/\/";
но это не удается.
Я использую php5.2
Возможно, ваши шаблоны не сработали, так как разделители шаблонов конфликтуют с #
в шаблоне. Ваш $pattern[5]
шаблон должен служить вам хорошо. Возможно, это была простая ошибка во время тестирования.
Вот код, который заменит ваш массив символов, используя популярный и не конфликтующий слеш (/
) в качестве разделителя: (демонстрация)
$pattern[0]="/>/";
$pattern[1]="/</";
$pattern[2]="/&/";
$pattern[3]="/"/";
$pattern[4]="/'/";
$pattern[5]="/\/";
$replace[0]=">";
$replace[1]="<";
$replace[2]="&";
$replace[3]='"';
$replace[4]="'";
$replace[5]="\\";
$pass="Th\is < is & a > sample "string'";
var_export($pass);
echo "\n";
echo preg_replace($pattern, $replace, $pass);
Выход:
'Th\is < is & a > sample "string''
Th\is < is & a > sample "string'
Других решений пока нет …