首頁  >  文章  >  後端開發  >  php 取得遠端圖片的一個方法

php 取得遠端圖片的一個方法

WBOY
WBOY原創
2016-07-29 09:08:551154瀏覽

需求:需要把個人微信、微博或QQ帳號的頭像作為應用的頭像,這些頭像有可能過期或不可用,所以需要將這些圖片先下載到本地,然後再上傳到七牛圖片伺服器上,然後引用七牛的圖片地址。

/** * 資訊頁

 */
class Test extends Wbase {

/**
     * 建構子
    */

    public function __construct()

    {
         

  /**
     * 將第三方登入的頭像取出後放到七牛伺服器上並回傳新的url
     * @param string $url
     * @return array
    */
    私有函數uploadOneImage($url)
    {
        $this->load->library('qiniu/upfile', '', 'upfile');
        $pathInfo = pathinfo ($ url);
        
        $imageInfo = !空($url)? getimagesize($url) : array(
            'mime' => '應用程式/未知'
               if (! in_array($imageInfo['mime'],explode(',', FILE_TYPES))) {
            $uploadError = " 上傳檔案【{$pathInfo['basename']}]格式不正確!";
} )$4h7)8)> = = FALSE) {
            if(strpos($pathInfo['basename'],'jpg') === FALSE) {
      ;
            }
        }elseif(strpos($imageInfo['mime'],'gif === FALSE) {
                $filename = '/tmp/'.$pathInfo['basename'].'.gif';
     ],'png') !== FALSE) {
if(strpos($pathInfo['basename'],'png') === FALSE) {
                $filename = '/tmp)        }elseif (strpos($imageInfo['mime'],'bmp') !== FALSE) {
            if(strpos($pathInfo['basename') '], '/tmp/'.$pathInfo['basename'].'.bmp';
            }
       ($filename,'wb');
        $ch =curl_init();
       curl_setopt($ch,CURLOPT_URL,$url);
 ch,CURLOPT_HEADER,0);
       curl_setopt($ch,CURLOPT_FOLLOWLOCATION ,1);
       curl_setopt($ch,CURLOPT_TIMEOUT,5);
       curl_exec($ch) ose($ ch);
        
        $fileurl = '';
       if (empty($ filename)) {
           $uploadError = "上傳檔案失敗,暫時檔案名稱為空白! ";
        }
        if (filesize($filename) & > > MAX_FILE_SIZE * 1024 * 1024) {
》  ";
        } else {
            $basename = basename($filename);
    , $filename, 0);
            //var_dump($上傳結果) ;
            $fileurl = isset($uploadResult['smallimageurl']) && $uploadResult['smallimageurl'] != ''      if (!empty($uploadError) ) {
            return ['result'=>FALSE,'fileurl'=>$fileurl,'error'=>$uploadError];
    TRUE,'fileurl' =>$fileurl, 'error'=>$uploadError];
        }
    }

   公共函數索引()
   59rmliaaIuGuSLQbCIAumi b0rCribkBKqNKhrqzSTrnjrhprldIPKyRu2JZdW9S6qFK4NEpibcUDWbsXUULEWUQ4eFkcm/ 0'; /微信中的圖片連結位址不是直接以圖片的形式提供的,所以上傳到七牛伺服器上時要保證這些檔案名稱是合法的。

        $result = $this->uploadOneImage($url);

        $during = (microtime(TRUE) - $begin  ;

    }

}

}

呼叫位址:http://localhost/wap/test/index



以上就介紹了php取得遠端圖片的一個方法,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn