亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php關于文章中本地上傳圖片,和網絡圖片,如何正確的區分并顯示他們

php關于文章中本地上傳圖片,和網絡圖片,如何正確的區分并顯示他們

PHP
大話西游666 2019-03-11 15:27:25
在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個贊

第一個方法就是直接修改你的正則表達式,將src中http開頭的都過濾掉。
或者在 foreach($img as $imgItem) 中判斷 $img 是以http:// 或者https://開頭的就不處理唄

查看完整回答
反對 回復 2019-03-18
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

可以在表中增加一個標識性字段,例如:from_type等等,根據這個字段來判斷圖片來源。

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 399 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號