Может кто-нибудь объяснить, что делает флаг «e», или связать меня с чем-то, что делает? Я не мог найти ничего через Google.
Пример:
preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);
e (PREG_REPLACE_EVAL)
Если этот модификатор установлен, preg_replace () выполняет обычную замену обратных ссылок в заменяющей строке, оценивает ее как код PHP и использует результат для замены строки поиска. Одиночные кавычки, двойные кавычки, обратная косая черта () и символы NULL будут экранированы обратными косыми чертами в замещаемых обратных ссылках. Только preg_replace () использует этот модификатор; он игнорируется другими функциями PCRE.
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
Поэтому, учитывая этот пример:
preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);
Заменой для всего матча будет то, что возвращает search_foo_term () при передаче соответствия для b? ,
Флаг e устарел, главным образом по соображениям безопасности. preg_replace_callback
этого используйте preg_replace_callback
.