我希望将一些 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<$tag$2>$3</$tag>$4",$data);
}
}
return $data;
}
第一个参数是字符串,第二个参数是标签数组。
看看strip_tags:
strip_tags -从字符串中删除HTML和PHP标记
我知道你实际上在寻找一个黑名单("显式过滤掉这些标签"),但也许你应该重新考虑并使用白名单;)
请参阅相关问题:strip_tags()函数黑名单而不是白名单