【发布时间】:2020-05-22 13:16:26
【问题描述】:
我刚刚开始学习 PHP,并开始编写从 Myfxbook 页面提取公共数据的代码。是否有任何可能的答案为什么以下函数在我的本地 XAMPP 服务器上运行良好并返回我需要的值但在将其上传到我的共享托管服务器后它返回 0?
function loadFromURL($url) {
$html = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($html);
$stats = $doc->getElementById("stats");
$firstLi = $stats->childNodes[1];
$secondSpan = $firstLi->childNodes[1];
$strVal = $secondSpan->textContent;
$roundGainPC = floatval($strVal);
return round($roundGainPC);
}
对我来说更奇怪的是,我的代码中的第二个函数既适用于我的本地服务器,也适用于共享网络服务器:
function loadFromURL2($url) {
$html = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($html);
$stats = $doc->getElementById("historyTotalSpan");
$strVal = $stats->textContent;
$totalTrades = preg_replace('/[^0-9]/', '', $strVal);
return round($totalTrades);
}
对于这个测试项目,我将公共系统之一用于这两个功能:https://www.myfxbook.com/members/autotrade/turtle-eur/1644166
理想情况下,第一个函数将返回当前为 174(四舍五入)的总增益。相反,它在实时服务器上返回 0。
【问题讨论】:
-
确保你在服务器上开启了
allow_url_fopen -
谢谢。我检查了它,它是开着的。此外,如果相关的话,服务器上的 PHP 版本是 7.3。
标签: php dom domdocument