所以我試圖用PHP編寫一個簡短的函數來檢查服務器(或備份)是否可用。該服務提供了兩臺服務器供使用,並且服務器內的一個頁面在ID爲「server_status」的元素中只有「OK」。我基本上把他們提供的代碼和調整它,以便它提供我需要的那種輸出。我想得到一個真或假的數組(取決於其中一個網站是否可用)以及正確的網頁(如果是)。現在每次輸出都是(false,「e404.html」),這是我設置輸出的條件,如果沒有滿足條件。這裏是我的代碼:PHP getElementById不工作
function checkURL() {
$servers = array('tpeweb.paybox.com', // primary URL
'tpeweb1.paybox.com'); // backup URL
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
return array(true, 'https://'.$server.'/cgi/MYchoix_pagepaiement.cgi');
}
}
return array(false, 'e404.html');
}
做一些測試輸出,看來我加載文件到$文檔,但它不填充$元素。我是PHP的新手,所以我不太清楚哪裏出了問題。
編輯:
這是服務提供,使這個檢查的原代碼,我調整了,因爲我需要的是能夠實際輸出鏈路的使用方法:
<?php
$servers = array('urlserver.paybox.com', // primary URL
'urlserver1.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';
謝謝, Adrian
什麼是你的服務器狀態變量內容? – siddhesh 2015-03-19 11:54:09
它爲我工作.. PHP 5.4 – 2015-03-19 11:55:26
在這裏很好的工作,代碼似乎沒問題。在PHP conf中猜測一些東西。 – yergo 2015-03-19 11:56:22