Enable
Новичок
preg_replace с модификатором /e. Глюк или фитча?
Короче имеется строка вида:
Хочу пропарсить этот блок с помощью regexp'a:
Так вот на выходе странные вещи происходят.
Получается: just \"quoted string\" and \slashed string\ - т.е. кавычки экранирются, слэши не экранируются. Хотя мне ни того, ни другого не надо.
Если выдернуть вторую подмаску через preg_match, то все нормально, ни че не экранируется.
Где тут сабака зарыта?
php 4.4.2, WinXP, все magic_quotes_* = off
apache 1.3.34
Короче имеется строка вида:
PHP:
$str = '{IF var} just "quoted string" and \slashed string\ {/IF var}';
PHP:
$data['var'] = true;
$pattern = '#\{IF ([a-z]+)\}(.+?)\{/IF \1\}#ise';
$function = "!empty(\$data['\\1']) ? '\\2' : ''";
$str = preg_replace($pattern, $function, $str);
Получается: just \"quoted string\" and \slashed string\ - т.е. кавычки экранирются, слэши не экранируются. Хотя мне ни того, ни другого не надо.
Если выдернуть вторую подмаску через preg_match, то все нормально, ни че не экранируется.
Где тут сабака зарыта?
php 4.4.2, WinXP, все magic_quotes_* = off
apache 1.3.34