所以我试图早些解决这个问题,但我认为我们都走错了方向。我正在尝试检查两台服务器,以确保其中至少有一台处于活动状态以进行呼叫。该服务为我提供了一个页面,每个页面在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函数中使用的字符串会导致同样的问题。修复??