loadHTMLFile加载,但是为空? PHP

时间:2015-03-23 10:11:57

标签: php dom domdocument

所以我试图早些解决这个问题,但我认为我们都走错了方向。我正在尝试检查两台服务器,以确保其中至少有一台处于活动状态以进行呼叫。该服务为我提供了一个页面,每个页面在id =“server_status”的div下只有“OK”。当我尝试将HTMLFile加载到变量中时,它返回true,但我永远不能从中拉出我需要的元素。在使用saveHTML()进行一些输出测试之后,看起来持有DOMDocument的变量是空的。这是我的代码:

servers = array('tpeweb.paybox.com', // primary URL
        'tpeweb1.paybox.com'); // backup URL
    foreach($servers as $server){

        $doc = new DOMDocument();
        $doc->validateOnParse = true;
        $doc->loadHTMLFile('https://'.$server.'/load.html');
        $server_status = "";
        $docText = $doc->saveHTML();
        if($doc) {
            echo "HTML should output here: ";
            echo $docText;
        }
        if(!$doc) {
            echo "HTML file not loaded";
        }

        $element = $doc->getElementById('server_status');

        if($element){
            $server_status = $element->textContent;
        }
        if($server_status == "OK"){
            // Server is up and services are available
            return array(true, 'https://'.$server.'/cgi/MYchoix_pagepaiement.cgi');
        }
    }
    return array(false, 'e404.html');

我得到的所有输出是“HTML应该在这里输出:”两次,然后它返回底部的数组。这是他们提供的代码:

$servers = array('tpeweb.paybox.com', // primary URL
        'tpeweb1.paybox.com'); // backup URL
$serverOK = "";
foreach($servers as $server){
    $doc = new DOMDocument();
    $doc->loadHTMLFile('https://'.$server.'/load.html');
    $server_status = "";
    $element = $doc->getElementById('server_status');
    if($element){
        $server_status = $element->textContent;
    }
    if($server_status == "OK"){
        // Server is up and services are available
        $serverOK = $server;
        break;
    }
    // else : Server is up but services are not available .
}
if(!$serverOK){
    die("Error : no server found");
}

echo 'Connecting to https://'.$server.'/cgi/MYchoix_pagepaiement.cgi';

这似乎也有同样的问题。可能是我的PHP配置吗?我的版本是5.3.6。

谢谢, 阿德里安

编辑: 我通过输入HTML作为字符串而不是将其调用到服务器来尝试它,它工作正常。但是,将HTML调用为要在PHP函数中使用的字符串会导致同样的问题。修复??

0 个答案:

没有答案