gpt4 book ai didi

php - 减少 PHP 执行时间

转载 作者:行者123 更新时间:2023-11-27 23:44:27 25 4
gpt4 key购买 nike

我有这个 PHP 脚本,它通过 API 从游戏高分中检索信息。问题是,对于每个播放器,它需要大约半秒,并且随着用户数量继续增加到 100 多个,页面加载大约需要 50 秒,这是非常长的。有什么方法可以减少加载时间,还是我必须在检索数据后存储数据并且每 30 分钟左右才更新一次。

这是代码:

    for ($i = 0; $i <= $totalMembers - 1; $i++) {
$currentLine = $lines[$i];
$Data = explode("\t", $currentLine);
$nameParsed = rawurlencode($Data[1]);

$c = curl_init('http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=' . $nameParsed);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_TIMEOUT, 0);

$html = curl_exec($c);
//$htmlTrimmed = trim($html);
$oneLine = trim(preg_replace("/[\n\r]/", ",", $html));

if (curl_error($c))
die(curl_error($c));

// Get the status code
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
if ($status != 404){
$userInfo = explode(",", $oneLine);

$Base = 0.25 * ($userInfo[7] + $userInfo[13] + floor($userInfo[19]/2));
$Melee = 0.325 * ($userInfo[4] + $userInfo[10]);
$Range = 0.325 * (floor($userInfo[16]/2) + $userInfo[16]);
$Mage = 0.325 * (floor($userInfo[22]/2) + $userInfo[22]);
$classLevel2 = max($Melee, $Range, $Mage);
$Final = floor($Base + $classLevel2);
$totalCombat += $Final;
}
curl_close($c);
}

最佳答案

您不应依赖第三方网站来构建您自己的内容。如果您的服务器发出太多请求,他们甚至可能会阻止您;例如,当多个访问者同时打开页面时。

相反,您应该安排一个后台作业(在 Linux 上使用 cron 或在 Windows 上使用任务调度程序)以定期获取记录(或尽可能只更新记录)并在您自己的数据库中添加/替换这些记录。

然后您可以从您自己的数据库中即时提供内容。您还可以控制向外部网站发出的请求数量,从而降低最终进入黑名单的风险。

关于php - 减少 PHP 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com