Jooml:不推荐使用preg_replace

时间:2018-05-29 07:48:14

标签: php joomla

我正在修改我们的一个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 :(得分:0)

最后,这段代码有效:

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

谢谢大家。