将选定的html标签转换为字符串


Convert selected html tags into string

我希望将一些 HTML标签转换为字符串。我希望能够提供一个标签数组,这些标签将被转换为字符串。

我正在查看的3个标签是:img, iframe和脚本,当在字符串内发现时,它们都应该显示为字符串。

的例子:

Array: $tags = array("img");
字符串:This is a picture of my dog <img src="......">

我看过htmlentities, htmlspecialchars等,但它们似乎都是全有或全无的解决方案。

有人能帮忙吗?

谢谢

也许htmlentities函数可以帮到你。

这对于非对标记不起作用,但可以很容易地编辑:

  function convert_to_entities($data,$tags) {
    foreach($tags as $tag) {
      while(strpos($data,"<$tag") !== false) {
        $reg = "@(.*)<$tag(.*)>(.*)</$tag>(.*)@";
        $data = preg_replace($reg,"$1&lt;$tag$2&gt;$3&lt;/$tag&gt;$4",$data);
      }
    }
    return $data;
  }

第一个参数是字符串,第二个参数是标签数组。

看看strip_tags:

strip_tags -从字符串中删除HTML和PHP标记

我知道你实际上在寻找一个黑名单("显式过滤掉这些标签"),但也许你应该重新考虑并使用白名单;)

请参阅相关问题:strip_tags()函数黑名单而不是白名单