Используя это регулярное выражение:
preg_replace( '/<!--(?!<!)[^\[>].*?-->/', '', $output )
Я могу удалить все комментарии HTML со своей страницы, за исключением всего, что выглядит следующим образом:
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
Как я могу изменить это, чтобы также исключить комментарии HTML, которые включают уникальную фразу, такую как «batcache»?
Итак, комментарий HTML это:
<!--
generated 37 seconds ago
generated in 0.978 seconds
served from batcache in 0.004 seconds
expires in 263 seconds
-->
Не будет удален
Этот код, кажется, делает трюк:
preg_replace( '/<!--([\s\S]*?)-->/', function( $c ) { return ( strpos( $c[1], '<![' ) !== false || strpos( $c[1], 'batcache' ) !== false ) ? $c[0] : ''; }, $output )
1
Решение
Это должно заменить все комментарии, которые не содержат «batcache». Соответствие выполняется между этими двумя тегами: <!--
в -->
,
$result = preg_replace("/<!--((?!batcache)(?!\\[endif\\])[\\s\\S])*?-->/", "", $str);
Вы можете проверить это Вот.
Как уже говорилось другими пользователями, не всегда безопасно анализировать HTML с помощью регулярных выражений, но если у вас есть относительная уверенность в том, какой тип HTML вы будете анализировать, он должен работать так, как ожидалось. Если регулярное выражение не соответствует конкретному сценарию использования, дайте мне знать.
1
Другие решения
Других решений пока нет …
Используя это регулярное выражение:
Я могу удалить все комментарии HTML со своей страницы, за исключением всего, что выглядит следующим образом:
Как я могу изменить это, чтобы также исключить комментарии HTML, которые включают уникальную фразу, такую как «batcache»?
Итак, комментарий HTML это:
Не будет удален
Этот код, кажется, делает трюк:
Решение
Это должно заменить все комментарии, которые не содержат «batcache». Соответствие выполняется между этими двумя тегами:
<!--
в-->
,Вы можете проверить это Вот.
Как уже говорилось другими пользователями, не всегда безопасно анализировать HTML с помощью регулярных выражений, но если у вас есть относительная уверенность в том, какой тип HTML вы будете анализировать, он должен работать так, как ожидалось. Если регулярное выражение не соответствует конкретному сценарию использования, дайте мне знать.
Другие решения
Других решений пока нет …