我最近发现了strip_tags()
函数,该函数将字符串和接受的html标记列表作为参数。
让我们说我想摆脱字符串中的图像这是一个例子:
$html = '<img src="example.png">';
$html = '<p><strong>This should be bold</strong></p>';
$html .= '<p>This is awesome</p>';
$html .= '<strong>This should be bold</strong>';
echo strip_tags($html,"<p>");
返回:
<p>This should be bold</p>
<p>This is awesome</p>
This should be bold
因此我将来通过<strong>
和<em>
摆脱格式化。
我想要一种黑名单的方法,而不是像以下那样列入白名单:
echo blacklist_tags($html,"<img>");
返回:
<p><strong>This should be bold<strong></p>
<p>This is awesome</p>
<strong>This should be bold<strong>
有没有办法做到这一点?
答案 0 :(得分:7)
如果您只想删除<img>
代码,则可以使用DOMDocument
代替strip_tags()
。
$dom = new DOMDocument();
$dom->loadHTML($your_html_string);
// Find all the <img> tags
$imgs = $dom->getElementsByTagName("img");
// And remove them
$imgs_remove = array();
foreach ($imgs as $img) {
$imgs_remove[] = $img;
}
foreach ($imgs_remove as $i) {
$i->parentNode->removeChild($i);
}
$output = $dom->saveHTML();
答案 1 :(得分:1)
您只能通过编写自定义函数来执行此操作。 Strip_tags()被认为更安全,因为你可能忘记将一些标签列入黑名单......
的评论中找到一些示例函数