PHP - (非常)长时间加载fopen

时间:2016-03-19 17:10:47

标签: php fopen

使用fopen手柄时,加载时间变得非常庞大。大约需要10秒钟左右。

$handle = fopen("http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player={$pname}", "r");
if (FALSE === $handle) {
echo "Failed";
    exit("Failed to open stream to URL");
}

$contents = '';

while (!feof($handle)) {
    $contents .= fread($handle, 32);
}

以上是我正在使用的代码。 这是一种效率低下的方法吗?如果是这样,那么有效的方法是什么?

我也会将这些结果分解并打印出来。但即使在删除结果部分的打印后,加载时间也没有改变。

1 个答案:

答案 0 :(得分:0)

如果您使用其他方式来执行http请求,也许您可​​以加快速度。

您可以使用cURL:

 $url = "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player={$pname}";
 $c = curl_init();
 curl_setopt($c, CURLOPT_URL, $url);
 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($c, CURLOPT_TIMEOUT, 10);
 $contents = curl_exec($c);
 curl_close($c);

或者尝试通过:

$contents = file_get_contents( "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player={$pname}" );