@Ysery

Как добавить исключение тега в regex?

Доброго времени суток, уважаемые специалисты.

Есть вот такой код, вырезающий комментарии из html кода.

// remove HTML comments (not containing IE conditional comments).
		$this->_html = preg_replace_callback(
			'/<!--([\\s\\S]*?)-->/'
			,array($this, '_commentCB')
			,$this->_html);

Как добавить в него исключение вырезания двух тегов - <!--noindex--> и <!--/noindex-->
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
@dodo512
// remove HTML comments (not containing IE conditional comments).
    $this->_html = preg_replace_callback(
      '#<!--(?!/?noindex)(.*?)-->#s'
      ,array($this, '_commentCB')
      ,$this->_html);
Ответ написан
@StockholmSyndrome
$allow_comments = [
    'noindex', 
    '/noindex'
];

$this->_html = preg_replace_callback(
    '/<!--([\\s\\S]*?)-->/',
    function ($matches) use($allow_comments) {
        [$match, $com] = $matches; 
        return in_array($com, $allow_comments) ? $match : '';
    },
    $this->_html
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы