ホームページ > バックエンド開発 > PHPチュートリアル > file_get_contents下载图片资源很慢怎么办

file_get_contents下载图片资源很慢怎么办

PHPz
リリース: 2020-06-28 10:25:39
オリジナル
2073 人が閲覧しました

file_get_contents下载图片资源很慢怎么办

file_get_contents下载图片资源很慢怎么办?

file_get_contents 下载一张20K的图片资源特别慢的解决办法:

$url = 'http://wx.qlogo.cn/mmopen/xu0fLo9waqKSTDO7j0kSO41O5Luq3LB6ozUvY4O7OsXUWNicB49fBs8nGYzoqcwGDARQZHpVuic4JSDngEVjVo10BoiaPd0iciaOb/0';
$content = file_get_contents($url);
file_put_contents('uploads/a.jpg', $content);
ログイン後にコピー

$url 这一行上面增加 ini_set('default_socket_timeout', 1); 设置一下 默认超时时间.

你所请求的这个图片, 对方的服务器支持 Connection: keep-alive, 所以 PHP 在接收到数据之后, 维持了一段时间, 一直等到超时, 才返回, 所以 在设置 默认超时时间的情况下 会比较慢.

你可以用同样的代码(不使用ini_set),获取这个URL http://sfault-avatar.b0.upaiyun.com/160/666/1606661144-55fe2a534b79f_huge256, 很快就回来了, 因为对方告诉了PHP, 在输出完数据接收完之后, 连接就可以关闭了.

function curl_file_get_contents($durl){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $durl);
   curl_setopt($ch, CURLOPT_TIMEOUT, 2);
   curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
   curl_setopt($ch, CURLOPT_REFERER,_REFERER_);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $r = curl_exec($ch);
   curl_close($ch);
   return $r;
 }
 
$url = 'http://wx.qlogo.cn/mmopen/xu0fLo9waqKSTDO7j0kSO41O5Luq3LB6ozUvY4O7OsXUWNicB49fBs8nGYzoqcwGDARQZHpVuic4JSDngEVjVo10BoiaPd0iciaOb/0';
$a = curl_file_get_contents($url);
file_put_contents('uploads/2.jpg', $a);
ログイン後にコピー

这样子会很快。。。。

这个应该是网络原因吧,就下载一个图片,用什么方法根本感觉不到差别

更多相关知识,请访问PHP中文网

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