尽管在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 
+0

做第一个建议给了另一个错误,说simpleexmlelement至少需要一个参数。我会尝试其他建议。 –

+0

你真的必须阅读手册,我已经更新';'到'(...);' – ajreal

+0

随着更新(这是我的评论后,而不是之前)事情再次正常工作。谢谢您的帮助。 –

是对的SimpleXML库加载?看看你的php.ini中有一行说;extension=simplexml.so并删除分号。重新启动你的HTTP服务,它应该工作。

+0

我补充说,首先,这个改变似乎反映在phpinfo不知道如何重启我的主机上的http服务。我会研究它。 –

+1

是的,你必须重新启动服务才能使这些更改生效。你有服务器上的root shell访问权吗?如果是这样,请尝试键入/etc/init.d/httpd restart或者交替地/etc/init.d/apache2 restart – nageeb