demmi
Guest
preg_replace c модификатором e
Непонятным образом preg_replace с модификатором e не хочет переваривать константы в их значения
к примеру простенький парсер:
почему так?
Непонятным образом preg_replace с модификатором e не хочет переваривать константы в их значения
к примеру простенький парсер:
PHP:
$str='word {str1} word';
$str1='WORD';
define ('lt','{');
define ('rt','}');
$lt='{';
$rt='}';
...
// эта конструкция не работает lt , rt - константы
echo preg_replace("#lt([^rt]+)rt#e","\$GLOBALS[\\1]",$str);
// все ок $lt $rt - переменные
echo preg_replace("#$lt([^$rt]+)$rt#e","\$GLOBALS[\\1]",$str);