2016-03-19 16 views
0

fopenハンドルを使用すると、ロード時間が大幅に長くなります。正確には約10秒かかります。上記PHP - (非常に)長いロードwith fopen

$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); 
} 

私が使用していたコードです。 これは非効率的な方法ですか?もしそうなら、効率的な方法は何ですか?

また、これらの結果を爆発させて印刷します。しかし、結果部分の印刷を取り除いた後でさえ、積載時間は変わらない。

+0

あなたが開いているファイルどのくらいの大きさ:K​​O、Moは、行きますか? – Loufylouf

+0

@Loufylouf非常に単純で簡単なデータを持つウェブページです。これは:http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=xmax – xmaxert

答えて

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}"); 
+0

2番目のオプションは、読み込み時間と同じ結果をもたらしました。しかし、最初のものは優れていた。すべてのばかげたロード時間を即座に切り捨てます。ありがとうございました。 – xmaxert

関連する問題