需求:需要把個人微信、微博或QQ帳號的頭像作為應用的頭像,這些頭像有可能過期或不可用,所以需要將這些圖片先下載到本地,然後再上傳到七牛圖片伺服器上,然後引用七牛的圖片地址。
/** * 資訊頁 */
class Test extends Wbase {
/**
* 建構子
*/
{
/**
* 將第三方登入的頭像取出後放到七牛伺服器上並回傳新的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'; /微信中的圖片連結位址不是直接以圖片的形式提供的,所以上傳到七牛伺服器上時要保證這些檔案名稱是合法的。
$during = (microtime(TRUE) - $begin ;
}
}
}
以上就介紹了php取得遠端圖片的一個方法,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。