3 votes

Comment optimiser mon script php qui charge une API pour qu'il se charge plus rapidement

J'ai un php script pour charger une API. Il est fonctionnel, mais il met environ 15 secondes à se charger. Existe-t-il un moyen d'améliorer le fonctionnement du script pour qu'il ait un temps de chargement plus rapide ?

Voici le 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;
}
?>

1voto

Nikolay Ganovski Points 354

Si les données transférées sont importantes, essayez d'activer la compression gzip en ajoutant ceci en haut de votre code php :

ob_start('ob_gzhandler');

Si ce n'est pas le cas, consultez ces liens, ils peuvent vous être utiles :

PHP file_get_contents très lent lorsqu'il utilise l'url complète

Comment accélérer file_get_contents ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X