【发布时间】:2014-05-19 13:05:18
【问题描述】:
我在加载外部 XML 文件时遇到问题。
当我在浏览器中打开它时,一切看起来都很好。我尝试下载 XML 文件并将其上传到我自己的服务器上。当我尝试从服务器加载 XML 文件时,一切正常。
谁能帮我解决这个问题,以便我可以从外部服务器加载它?
我的代码:
$oXML_cz = new SimpleXMLElement(file_get_contents('http://www.ticketportal.cz/xml/temp/partnerall1.xml?ID_partner=122'));
foreach ($oXML_cz->event as $event_cz)
{
......
}
【问题讨论】:
-
您在下面的评论中提到您可以使用
file_get_contents获取其他远程文件,这是排除的重要可能性。您还尝试了哪些其他步骤来调试此问题?例如,如果您回显file_get_contents('http://www.ticketportal.cz/xml/temp/partnerall1.xml?ID_partner=122')的内容,您会得到预期的XML 吗?您在尝试运行此处发布的代码时收到的确切错误消息是什么? -
如果我回显,它会返回:[function.file-get-contents]:打开流失败:HTTP 请求失败!
-
啊哈!那么,这是一个重要的发现,不是吗?这意味着这与将其解析为 XML 无关,而与能够从您的服务器访问该 URL 无关。因此,可能值得尝试一些获取文件的替代方法(例如 CURL)并查看它们是否至少会给您带来更具表现力的错误。
-
另外,需要明确的是,该消息不是
echo的结果,即使在您之前的代码中也应该显示。您是否确定您的error logging or display is turned up to the max 以确保捕获所有消息? -
是的,它有帮助...我使用了 CURL,现在一切正常。感谢您的帮助!