simplexml在一个主机上工作,但在另一台主机上不工作。 PHP xml指令正确。为什么?

时间:2020-02-13 05:20:08

标签: php xml curl

以下代码可在Host1上使用

$url = "https://<redacted>";
$xml=simplexml_load_file($url);
$result = $xml->result;

在Host2上,使用完全相同的代码会返回以下警告和通知:

警告:simplexml_load_file(https :)无法打开流:/usr/www/users/...etc中的连接超时。 注意:试图获取/usr/www/users...etc中非对象的属性“结果”。

如果我复制错误消息中显示的URL并将其粘贴到浏览器中,则它可以正常工作并返回xml树。

在Host2上,所有xml指令均已启用,并且allow_url_fopen已启用。

我无权访问服务器日志,因此无法检查它们,但站点错误日志中未记录任何错误。

我尝试通过以下代码使用curl:

$cl = curl_init();
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_URL, $url);
$contents = curl_exec($cl);
curl_close($cl);

if ($contents) return $contents;
else return FALSE;
print_r($contents);

但是在超时期限到期后,我从主机服务器收到“服务不可用”错误。

1 个答案:

答案 0 :(得分:0)

似乎您托管的主机被该网站阻止。您使用该网址多次拨打电话吗?

检查此一项:

https://stackoverflow.com/a/34505846/11426374