Heim > Backend-Entwicklung > PHP-Tutorial > file_get_contents下载图片资源很慢怎么办

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

PHPz
Freigeben: 2020-06-28 10:25:39
Original
2064 Leute haben es durchsucht

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);
Nach dem Login kopieren

$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);
Nach dem Login kopieren

这样子会很快。。。。

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage