在php中,一篇文章中的内容,可能会从本地上传图片,或者引用网络图片。上传图片呢,文章内容保存在数据库中,就只是这个图片的路径,例如:
<img src="/data/images/2017/09/26/20170926141255_51116.png">
如果是引用网络图片呢,保存在数据库中是完整的链接,例如:
<img src="http://images2015.cnblogs.com/blog/782095/201510/782095-20151008152329596-1587178049.png">
那么根据文章ID,去显示这篇文章时候,对于上传图片的正确显示处理目前有了,如下
$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";
preg_match_all($pattern,$content,$matches);
$img = "";
if(!empty($matches)) {
//src的值是放在数组的第1个
$img = $matches[1];
}else {
$img = "";
}
if (!empty($img)) {
$img_url = $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['HTTP_HOST'];
$patterns= array();
$replacements = array();
foreach($img as $imgItem){
$final_imgUrl = $img_url.$imgItem;
$replacements[] = $final_imgUrl;
$img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";
$patterns[] = $img_new;
}
}
//让数组按照key来排序
ksort($patterns);
ksort($replacements);
//替换内容
$vote_content = preg_replace($patterns, $replacements, $content);
这样就可以让上传图片,正确显示出来,那么请问一下,如何在这其中,屏蔽掉是网络引用的图片呢??因为网络图片已经有完整的链接地址了。
谢谢,不胜感激
2 回答
![?](http://img1.sycdn.imooc.com/545861b80001d27c02200220-100-100.jpg)
慕码人2483693
TA贡献1860条经验 获得超9个赞
- 2 回答
- 0 关注
- 385 浏览
添加回答
举报
0/150
提交
取消