Jooml: preg_replace устарела - PullRequest
0 голосов
/ 29 мая 2018

Я изменяю один из наших шаблонов Joomla и получаю это предупреждение.

Не рекомендуется: preg_replace (): модификатор / e устарел, вместо этого используйте preg_replace_callback в /home/folder/public_html/components/com_joomgallery/helpers/helper.php в строке 255

Код такой:

  $text     = preg_replace('/('.$replace2.')/ie', $replace, $text);

Весь блок кода:

 public static function createPagetitle($text, $catname = '', $imgtitle = '', $page_title = '')
  {
    preg_match_all('/(\[\!.*?\!\])/i', $text, $results);
    define('COM_JOOMGALLERY_COMMON_CATEGORY', JText::_('COM_JOOMGALLERY_COMMON_CATEGORY'));
    define('COM_JOOMGALLERY_COMMON_IMAGE', JText::_('COM_JOOMGALLERY_COMMON_IMAGE'));
    for($i = 0; $i<count($results[0]); $i++)
    {
      $replace  = str_replace('[!', '', $results[0][$i]);
      $replace  = str_replace('!]', '', $replace);
      $replace  = trim($replace);
      $replace2 = str_replace('[!', '\[\!', $results[0][$i]);
      $replace2 = str_replace('!]', '\!\]', $replace2);
      $text     = preg_replace('/('.$replace2.')/ie', $replace, $text);
    }
    $text = str_replace('#cat', $catname, $text);
    $text = str_replace('#img', $imgtitle, $text);
    $text = str_replace('#page_title', $page_title, $text);

    $text = self::addSitenameToPagetitle($text);

    return $text;
  }

1 Ответ

0 голосов
/ 29 мая 2018

Наконец-то этот код сработал:

  $text = preg_replace_callback('/('.$replace2.')/',create_function('$replace','return @replace;'),$text);

Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...