我需要删除所有html标记,但保留注释行以提取信息。
甚至可能吗?
$content = strip_tags($content, '<!-->');
这不起作用,我尝试了一些不同的变体。
答案 0 :(得分:0)
在使用以下代码删除注释之前,您可以保护自己的注释
// 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);
答案 1 :(得分:-1)
使用此正则表达式代替使用strip_tags():
$szRetVal = preg_replace( '%</?[a-z][a-z0-9]*[^<>]*>%sim','',$szHTML );