0

在我的网站上,我有一个部分,用户可以在其中写下他们的简历或放置关于他们自己的信息。在本节中,他们可以发布图片。

不过,我对此有点问题;如果用户从 Google 等网站复制并粘贴图像,则图像的样式会保留在其中。像这个:

<img id="irc_mi"  -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef), -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef); -webkit-background-size: 21px; background-size: 21px; box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; -webkit-box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; margin-top: 80px; background-position: 0px 0px, 10px 10px;" src="http://www.fireandice.com/images/P/4060104_a-Small-Cat-Copper-Drip-Wall-Decoration.jpg" alt="" width="400" height="400" />

在我将它提交到数据库之前,有什么方法可以从这个图像标签中去除样式?

我正在尝试使用 PHP preg_replace,但在保留图像时遇到了一些麻烦src,因为这是我唯一不想替换的东西。

$src = '<img src="" width="150" height="226" alt="user image"/>';
preg_replace('/<img[^>]+\>/i', $src, $string);  

有什么办法可以保留原件src吗?

4

1 回答 1

0

为什么允许输入 HTML 代码?

通常有两种方法可以完成这项工作:允许输入 URL,或允许上传图像。

第一个可能是一件坏事,因为通常您想自己托管图像,而不是从其他任何地方获取它们。此外,其他服务器管理员可能会添加防盗链,这些图像将不再显示。

上传有它自己的问题,因为没有任何限制,用户将上传巨大的恶意文件——你必须以某种方式处理它。

如果您真的想清理任意 HTML,请使用http://htmlpurifier.org/ - 不要发明自己的方案。

于 2013-07-13T16:03:06.597 回答