php strip_tags允许评论

时间:2014-10-29 02:22:36

标签: php strip-tags

我需要删除所有html标记,但保留注释行以提取信息。

甚至可能吗?

$content = strip_tags($content, '<!-->');

这不起作用,我尝试了一些不同的变体。

2 个答案:

答案 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 );