Мне нужно убрать все HTML-теги, но сохранить строки комментариев для извлечения информации.
Это вообще возможно?
$content = strip_tags($content, '<!-->');
Это не работает, и я попробовал несколько разных вариантов.
Вы можете защитить свой комментарий, прежде чем удалить их, используя следующий код
// create a random string for using in replace strings
$random = strtoupper(dechex(rand(0,10000000000)));
// replace comment starts
$html = preg_replace('/<!--/', '@MARKER-START-'. $random.'@', $html);
// replace comment ends
$html = preg_replace('/-->/', '@MARKER-END-'. $random.'@', $html);
// strip all html tags
$html = strip_tags($html);
// replace back comment starts
$html = preg_replace('/@MARKER-START-'. $random.'@/', '<!--', $html);
// replace back comment ends
$html = preg_replace('/@MARKER-END-'. $random.'@/', '-->', $html);
Вместо использования strip_tags () используйте это регулярное выражение:
$szRetVal = preg_replace( '%</?[a-z][a-z0-9]*[^<>]*>%sim','',$szHTML );