私はAPIを読み込むためのPHPスクリプトを持っています。それは機能的です。ただし、ロードには約15秒かかります。スクリプトの実行速度を向上させるための方法はありますか?より速く読み込むAPIをロードする私のPHPスクリプトを最適化する方法
HERESにPHP:
<?php
error_reporting(0);
$apikey = "apikey=***************************";
$json = file_get_contents("https://eu.api.battle.net/wow/guild/Vek'Nilash/Renascence?fields=news&locale=en_GB&".$apikey);
$feed = json_decode($json);
$feedcount = 0;
foreach($feed->news as $newsfeed) {
if ($feedcount >= 8) {
break;
}
echo $newsfeed->character . PHP_EOL;
$type = $newsfeed->type;
// $iteminfo = $newsfeed->itemId . PHP_EOL;
$itemnumber = $newsfeed->itemId;
if ($type == "itemLoot"){
echo " has looted:";
$itemurl = file_get_contents("https://eu.api.battle.net/wow/item/$itemnumber?locale=en_GB&".$apikey);
$itemname = json_decode($itemurl);
echo " [" . $itemname->name . "]<br>";
}
elseif ($type=="itemPurchase"){
echo " has purchased:";
$itemurl = file_get_contents("https://eu.api.battle.net/wow/item/$itemnumber?locale=en_GB".$apikey);
$itemname = json_decode($itemurl);
echo " [" . $itemname->name . "]<br>";
}
elseif ($type=="playerAchievement"){
echo " has Achieved:";
echo " " . $newsfeed->achievement->title . "<br>";
}
++$feedcount;
}
?>
最初にあなたが答えなければならないのは、これに関連する時間は何ですか?次に、最適化するものを知っています。すぐに覚えているのは、httpリクエストです。それはどれくらいかかりますか?もう一つは、あなたが処理しなければならないレスポンスはどれだけ大きいのでしょうか?リクエストでフィルタリングして_less_情報を処理する必要があるかもしれません。 – arkascha
それは論理的に聞こえる。私はそれをさらに調べます。ありがとうございました。 –
あなたがそのネット上でゲームをプレイしたことがあるなら、あなたは確かに頻繁で予測できないゲームの遅れ(彼らのサーバまたはネットワーク、またはあなたのネットワーク)を認識しています。ループ中の 'file_get_contents'の貢献をプロファイリングしていない場合は、このスクリプトを最適化することを尋ねる暗闇の中で撮影しています。 – YvesLeBorg