程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 獲取遠程圖片:遠程圖片代理程序

PHP 獲取遠程圖片:遠程圖片代理程序

編輯:關於PHP編程

因為大多數虛擬主機都有流量限制(特別是博客主機),因此很多人都選擇把圖片儲存到 Flickr 和 Picasa 等免費相冊裡,再通過外鏈插入到文章裡。但由於這些網站經常被 block ,因此我建議大家還是盡量把圖片放到自己的服務器上。

由於我個人很懶,萬一博客搬家的話,過多的文章附件將會給文件的遷移帶來麻煩。因此我以 cosbeta 的 Pika 插件為藍本寫了一個遠程圖片代理程序,並對較多博客使用的 Picasa 、 Flickr 和 PhotoBucket 這三個圖床服務進行了防止鏈接被重置的處理。請點這裡下載腳本。

使用方法

其實這個腳本和 pika 原理一樣,但由於我做了較多的修改,使用方法會有所差別。在使用之前,請確定你擁有符合要求的服務器服務器。

  • 一個流量較大的國外php主機
  • 服務器支持curl函數

如果能滿足以上要求,那麼你就可以使用這個腳本了。

首先把腳本上傳到國外主機一個子域名的根目錄下,並把腳本裡的 $allow_referer 添加允許調用圖片的域名,必須包含此腳本所在的域名和你博客所在的域名,否則圖片就無法在你博客顯示。

如果你要調用的圖片是 Picasa 、 Flickr 和 PhotoBucket 以外的圖床,則使用以下的代碼(yourdomain是腳本所在的域名):

<img src="http://yourdomain/index.php?img=http://image_url" />

如果你調用的是 Picasa 的圖片,則使用以下的代碼( image_url 是 “ggpht.com/” 後面的部分,lh* 是圖片外鏈地址的第一節,也就是服務器編號):

<img src="http://yourdomain/index.php?img=http://image_url&host=lh*" />

調用 Flickr 和 PhotoBucket 的圖片也差不多,把 host 參數改為 farm* (Flickr)和 i**** (PhotoBucket)就可以。之所以把這幾個圖床的調用方法弄得這麼麻煩,是因為這幾個圖床被block的風險比較大,只要調用這幾個網站的圖片時鏈接裡不出現這幾個網站域名,圖片鏈接就不會被重置,從而當這幾個網站被block的時候訪客也能看到圖片。

圖片通過此腳本調用一次後會緩存到服務器裡,第二次的調用則直接調用緩存。

PS

我正在把這個腳本做成一個完整的 WordPress 插件,如果你發現這個腳本有不足的地方,請告訴我。

原文鏈接:http://blog.imbolo.com/php-get-image-from-remote-host/

  1. 上一頁:
  2. 下一頁: