有没有办法阻止img-elements从数据库表中输出?
在我的数据库中存储了一些HTML代码:
表:test_table
字段:代码
<p>This is simple test!</p><img src="files/test.img">
现在我正在输出数据库内容:
$code = $db->getValue('code');
<?php echo $code ?>
输出code
字段的完整内容。我想阻止<img>
- 元素的输出。
答案 0 :(得分:2)
你可以用两种方式做到这一点。首先,其他人建议preg_replace()或第二次使用strip_tags() allowable_tags
参数,您可以在其中定义允许的标记。如果您的输出包含您不想回应的其他标记,那么您就是安全的。
文档示例:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
以上示例将输出:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
答案 1 :(得分:0)
你可以使用css。
<div id="content">
$code = $db->getValue('code');
<?php echo $code ?>
</div>
<强> CSS 强>
#content img{display:none;}
OR
<强>的jQuery 强>
$(function(){
$('#content img').remove();
});
答案 2 :(得分:-2)
您可能需要使用此preg_replace
,它会将所有<img>
替换为字符串中的space
。
如果您想要替换任何其他内容,请修改
$replaceWith
。
$content = '<p>This is simple test!</p><img src="files/test.img"><img src="files/test.img">';
$replaceWith = " ";
$content = preg_replace("/<img[^>]+\>/i", $replaceWith, $content);
echo $content;
使用您的代码:
$code = $db->getValue('code');
$content = preg_replace("/<img[^>]+\>/i", " ", $code);
echo $content;