下面这段代码在我的远程托管服务器上运行良好,但由于某种原因在我的本地Linux机器上却不能运行。我也尝试过使用file_get_contents来获取restful服务,但它也返回false。
有人知道为什么会这样吗?
谢谢:)
$xml_data = simplexml_load_file("****");
if ($xml == FALSE)
{
echo "Failed loading XML\n";
foreach (libxml_get_errors() as $error)
{
echo "\t", $error->message;
}
}
7条答案
按热度按时间4uqofj5v1#
出现此错误是因为您的服务器已禁用远程文件访问。另一种方法是使用CURL。
使用下面的代码来使用CURL:
现在使用
$cont
作为对象来访问XML中的不同节点。pxy2qtax2#
确保您的
php.ini
中allow_url_fopen
已打开http://php.net/manual/filesystem.configuration.php
q3qa4bjr3#
嗯,我有同样的问题,虽然我会张贴这一点,以帮助任何人谁可能还没有尝试过这个解决方案。
我有一个PHP脚本,它在本地工作得很好,但是当在运行plesk的客户端服务器上使用它时,它不会工作,并且在试图获取外部xml文件时失败。
我试图从一个php脚本引用一个外部xml文件。我使用的服务器正在运行plesk。在考虑更换主机之前,我所做的只是更新服务器上的PHP设置,使其作为Apache模块而不是FastCGI运行。
我收到的错误消息(示例):
警告:简单表达式加载文件(url)[函数.简单表达式加载文件]:无法打开流:权限被拒绝
这解决了我的问题。
我在PHP脚本中使用了以下报表设置:
fjaof16o4#
像这样使用
35g0bw715#
变更:将
if ($xml == FALSE)
变更为if ($xml === FALSE)
(源代码)。m528fe3b6#
我遇到了同样的问题,只是simplexml中有一个愚蠢的未声明点
xml文件格式应该有一个container标签,所以,你只需要放一个包含你所有数据的parent标签,如下所示:
iqjalb3h7#
在我的例子中,它缺少XMLphp库,重新安装它就可以正常工作了
https://wpml.org/forums/topic/fatal-error-uncaught-error-call-to-undefined-function-simplexml_load_file-3/