Php 文件\从URL获取\内容仅适用于本地服务器

Php 文件\从URL获取\内容仅适用于本地服务器,php,dom,domdocument,Php,Dom,Domdocument,我刚刚开始学习PHP,正在编写一段代码,从Myfxbook页面提取公共数据。有没有可能的答案,为什么下面的函数在我的本地XAMPP服务器上运行得很好,并返回我需要的值,但在上传到我的共享托管服务器后,它返回0 function loadFromURL($url) { $html = file_get_contents($url); $doc = new DOMDocument(); $doc->loadHTML($html); $stats = $doc-

我刚刚开始学习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);
}
更奇怪的是,我的代码中的第二个函数同时在本地服务器和共享web服务器上工作:

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);
}
对于这个测试项目,我将使用一个公共系统来实现这两个功能:


理想情况下,第一个函数将返回当前174(四舍五入)的总增益。相反,它在实时服务器上返回0。

我认为从本地驱动器获取文件的功能
file\u get\u contents
非常好 用卷曲代替

function loadFromURL($url) {
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
      $html = curl_exec($ch);
      $doc = new DOMDocument();
      $doc->loadHTML($html);
      ...
      curl_close($ch);
    }

确保您已在服务器上打开了
allow\u url\u fopen
,谢谢。我检查了一下,它是开着的。如果相关的话,服务器上的PHP版本是7.3。用这个替换一个简单的单行函数调用?为什么?