preg_replace и php 5.5

137
19 декабря 2016, 19:29

Поставил один хороший движок, но разрабатывался он под php 5.4.

Теперь постоянно ругается на вот эту строчку:

$source_content = preg_replace($search.'e', "'"
   . $this->_quote_replace($this->left_delimiter) . 'php'
   . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
   . $this->_quote_replace($this->right_delimiter)
   . "'"
   , $source_content);

Прошу помощи у вас ее переделать в preg_replace_callback

Answer 1

Почти ничего не меняется:

  1. Убираем модификатор e;
  2. Меняем строку замены на function ($m) { return /*строка замены */ };
  3. Внутри строки замены меняем ссылки вида \\n на $m[n], где n - соответствующая цифра.

Получается так:

$source_content = preg_replace_callback($search, 
   function ($m) { return "'"
       . $this->_quote_replace($this->left_delimiter) . 'php'
       . "' . str_repeat(\"\n\", substr_count(${m[0]}, \"\n\")) .'"
       . $this->_quote_replace($this->right_delimiter)
       . "'"
   }, $source_content);
READ ALSO
Обработать многомерный массив stdClass foreach-ем

Обработать многомерный массив stdClass foreach-ем

Как обработать foreach-ем данный массив? Не могу вывести это: $Array[1]->EMAIL[0]->VALUE;

234
Вывод html в alert после отправки формы

Вывод html в alert после отправки формы

Есть форма обратной связи, у которой есть кнопка на которую навешано событие отправки письма на почту, после нажатияПроблема в том, что после...

271