php - 如何优化加载 API 的 php 脚本以加快加载速度

标签 php performance

我有一个 PHP 脚本来加载 API。它很实用;但加载大约需要 15 秒。有没有办法让脚本运行得更好,从而加快加载时间?

这是 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;
}
?>

最佳答案

如果传输的数据很大,请尝试通过在 php 代码顶部添加以下内容来启用 gzip 压缩:

ob_start('ob_gzhandler');

如果情况并非如此,请查看这些链接,它们可能会有所帮助:

PHP file_get_contents very slow when using full url

How to speed up file_get_contents?

关于php - 如何优化加载 API 的 php 脚本以加快加载速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41676857/

相关文章:

django 我可以在评估的查询集上使用 prefetch_related 而无需重做初始查询吗

php - 如何将数据库中的时间戳字段格式化为荷兰语区域设置?

php - SQL Server 定期固定延迟

javascript - 如何通过从 javascript 函数的 <td> 调用 jquery 函数来基于类别加载子类别以动态添加行?

php - 在 PHP 中测试字符串是否为 sha1

linux - 当另一个进程共享相同的HT内核时,为什么一个进程的执行时间更短

Python/Numpy 查找长度变量跨度

iphone - 使用 iPhone SIMD 浮点单元进行浮点到整数转换

performance - 在 x86_64 汇编程序 (yasm) 中使用 POSIX 线程库需要更多的执行时间

php - 在 Php 中将一周的开始日期从 'monday' 更改为 'tuesday'