我有一个循环代码的php函数,
$xml = new SimpleXMLElement($request_url,null, TRUE);
该函数在localhost xampp中运行良好,但是当它上传到服务器时 它运行到SimpleXMLElement,行和停止,不运行到那里的函数结束
错误消息是,
Message: SimpleXMLElement::__construct(): I/O warning : failed to load external entity "http:/..."
failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable
我的本地php版本是Apache / 2.4.23(Win32)OpenSSL / 1.0.2h PHP / 5.6.24 我的服务器版本是PHP版本:5.5.9-1ubuntu4.20 Apache / 2.4.7(Ubuntu)
你知道这个的原因吗,提前谢谢
答案 0 :(得分:0)
返回的503 Http标头表示您尝试加载的资源所在的服务器不可用。
此HTTP标头503 Service Unavailable表示:
由于服务器临时过载或维护,服务器当前无法处理请求。
根据W3规范:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
答案 1 :(得分:0)
函数停止执行问题解决,使用php sleep()函数和try-catch块。现在有了这个流程,它可以成功执行到最后。
foreach ($params as $key => $value) {
....
....
$request_url = "the url";
try{
sleep(1);
$xml = new SimpleXMLElement($request_url,null, TRUE);
}catch(Exception $e){
echo "Skipped";
}
}