在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 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
- 2 回答
- 0 關注
- 399 瀏覽
添加回答
舉報
0/150
提交
取消