尽管在php.ini中启用了allow_url_fopen和simpleXML,但为什么SimpleXMLElement未定义?
我的代码只是返回此:尽管在php.ini中启用了allow_url_fopen和simpleXML,但为什么SimpleXMLElement未定义?
Fatal error: Call to undefined function SimpleXMLElement() in /path/to/xmltest.php on line 6
和代码本身:
<?php
$language_url = "http://www.fakesite.com/api/FAKEAPIKEY/languages.xml";
// Passing the XML
$data = file_get_contents($language_url);
$books = SimpleXMLElement($data);
//-------------------
// Passing a filename
//$books = SimpleXMLElement($language_url, null, true);
?>
当然,$language_url
是有效的,但我改变了它的隐私问题。它驻留在我尝试运行此脚本的另一个站点上。
SimpleXMLElement
是simplexml的一类,
你应该初始化它像往常对象: -
$books = new SimpleXMLElement($data);
或者程序功能
$books = simplexml_load_string($data); // load from string
$books = simplexml_load_file($url); // load from file
是对的SimpleXML库加载?看看你的php.ini中有一行说;extension=simplexml.so
并删除分号。重新启动你的HTTP服务,它应该工作。
我补充说,首先,这个改变似乎反映在phpinfo不知道如何重启我的主机上的http服务。我会研究它。 –
是的,你必须重新启动服务才能使这些更改生效。你有服务器上的root shell访问权吗?如果是这样,请尝试键入/etc/init.d/httpd restart或者交替地/etc/init.d/apache2 restart – nageeb
做第一个建议给了另一个错误,说simpleexmlelement至少需要一个参数。我会尝试其他建议。 –
你真的必须阅读手册,我已经更新';'到'(...);' – ajreal
随着更新(这是我的评论后,而不是之前)事情再次正常工作。谢谢您的帮助。 –