php的file_get_contents为什么很慢?

测试代码

<?php
function sendGetByCurl($url, $time)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, $time);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $time);
    $return = curl_exec($ch);
    curl_close($ch);
    return $return;
}

$url = 'http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIrQKRNquic8GwsU951TC7PDCFzIew3RFwTOFoNx8u1fln0FOzHv04YBoEqXPTHHfyU0Xa1qoFULCw/132';

$start1 = microtime(true);
$data1 = file_get_contents($url);
file_put_contents('1.jpg', $data1);
$end1 = microtime(true);
$span1 = $end1 - $start1;
echo $span1 . PHP_EOL;

$start2 = microtime(true);
$data2 = sendGetByCurl($url, 3);
file_put_contents('2.jpg', $data2);
$end2 = microtime(true);
$span2 = $end2 - $start2;
echo $span2 . PHP_EOL;

exit;

测试结果

16.397258043289
0.18160080909729

那张图片浏览器访问或者wget下载都很快的,很奇怪

暮色呼如
浏览 973回答 2
2回答

偶然的你

这是file_get_contents的一个bug,在最新php版本中已经修复。在google里搜一下吧,有解释很详细的原因。
打开App,查看更多内容
随时随地看视频慕课网APP