ホームページ > バックエンド開発 > PHPチュートリアル > PHPでリモート画像を取得する方法

PHPでリモート画像を取得する方法

WBOY
リリース: 2016-07-29 09:08:55
オリジナル
1169 人が閲覧しました

要件: 個人の WeChat、Weibo、または QQ アカウントのアバターをアプリケーションのアバターとして使用する必要があります。これらのアバターは期限切れになるか、利用できなくなる可能性があるため、最初にこれらの画像をローカルにダウンロードしてから、Qiniu にアップロードする必要があります。次に、Qiniu の画像アドレスを引用します。

以下は codeIgniter での書き方です:

/**
* 情報ページ
*/
classテストは Wap_base を拡張します
{

/**
* コンストラクター
*/
public function __construct()
{
parent::__construct();
}

/**
* サードパーティのログインアバターを取り出して Qiniu サーバーに置き、新しい URL を返します
* @param string $url
* @return array
*/
private function UploadOneImage($url)
{
$this->load->library('qiniu/upfile', '', 'upfile');
$pathInfo = pathinfo ($url);

$imageInfo = !空($url) ? getimagesize($url) : array(
'mime' => 'application/unown'
);
$uploadError = '';        
if (! in_array($imageInfo['mime'],explode(',', FILE_TYPES))) {
$uploadError = "上传文件【{$pathInfo['basename']}】格式が違います!";
}
if(strpos($imageInfo['mime'],'jpeg') !== FALSE) {
if(strpos($pathInfo['basename'],'jpg') === FALSE) {
$filename = '/tmp/'.$pathInfo['basename'].'.jpg';
}
}elseif(strpos($imageInfo['mime'],'gif') !== FALSE) {
if(strpos ($pathInfo['basename'],'gif') === FALSE) {
$filename = '/tmp/'.$pathInfo['basename'].'.gif';
}
}elseif(strpos( $imageInfo['mime'],'png') !== FALSE) {
if(strpos($pathInfo['basename'],'png') === FALSE) {
$filename = '/tmp/' .$pathInfo['basename'].'.png';
}
}elseif(strpos($imageInfo['mime'],'bmp') !== FALSE) {
if(strpos($pathInfo['basename '],'bmp') === FALSE) {
$filename = '/tmp/'.$pathInfo['basename'].'.bmp';
}
}
//curl获取图片并写入到本地文件中
$fp = fopen($filename,'wb');
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FILE,$fp);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
curl_exec($ch);
fclose($f p);
curl_close($ ch);

$fileurl = '';
if (empty($filename)) {
$uploadError = "上传文件失败,临時文件名空!";
}
}
if (ファイルサイズ($ファイル名) > MAX_FILE_SIZE * 1024 * 1024) {🎜 $uploadError = "上传文件【$filename】大小超过制限!";
} else {
$basename = basename($filename);
$uploadResult = $this->upfile->upload(QINIU_UPLOAD_BUCKET, $basename, $filename, 0);
//var _dump($uploadResult) ;
$fileurl = isset($uploadResult['smallimageurl']) && $uploadResult['smallimageurl'] != '' ? $uploadResult['smallimageurl'] : '';
}
if (! empty($uploadError) ) {
return ['result'=>FALSE,'fileurl'=>$fileurl,'error'=>$uploadError];
}else {
return ['result'=>TRUE,'fileurl' =>$fileurl,'error'=>$uploadError];
}
}

public function Index()
{

$url = 'http://wx.qlogo.cn/mmopen/bv5hAQW59rmliaaIuGuSL QbcIAumib0rCribkBKqNKhrqzSTrnjrhprldIPKyRu2JZdW9S6qFK4NEpibcUDWbsXUUlEWUQ4eFkcm/ 0';

//マイクロ信内の画像ファイルは画像の形式で直接提供されていないため、これらのファイル名が正当であることを七牛サーバーに転送する必要があります。0 肯定は実行されません。 = microtime(TRUE);
$result = $this->uploadOneImage($url);

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

echo '実行方法の使用時間:'.$during .'
';

}

}

}

调用地址:http://localhost/wap/test/index

以上は、php がプログラムの図を取得する 1 つの方法であり、側面の内容も含まれているため、PHP の教則に関心のある友人の助けになることを望みます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート