数据库输出阻止图像

时间:2016-04-04 09:16:22

标签: php jquery mysql database

有没有办法阻止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> - 元素的输出。

3 个答案:

答案 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;

Example Demo

使用您的代码:

$code = $db->getValue('code');
$content = preg_replace("/<img[^>]+\>/i", " ", $code); 
echo $content;