preg_replace脚本,链接标记不起作用

时间:2012-03-31 04:17:06

标签: php seo html-parsing

我使用以下代码从我的字符串中删除脚本,链接标记

$contents='<script>inside tag</script>hfgkdhgjh<script>inside 2</script>';
$ss=preg_replace('#<script(.*?)>(.*?)</script>#is', '', $contents);
echo htmlspecialchars($ss);

它工作正常。但是我可以使用类似于html解析而不是preg_match的任何东西吗?

2 个答案:

答案 0 :(得分:2)

以下是您可以做的一些事情

  1. htmlspecialchars()可以证明这些标签无用
  2. striptags()删除所有HTML标记
  3. 但您使用的技术是正确的。但是,这是

    的改进版本
    echo preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $contents);
    

答案 1 :(得分:0)

HTML Purifier永远是个不错的选择。 phpQuery也有几次派上用场了。

如果您正在清理内容,使用正则表达式很容易出错...阅读this post。这取决于你想要实现的目标。