调用未定义的函数:simplexml_load_string()

我正在执行使用cron文件的Facebook计数function。 哪个cron每10分钟运行一次,并计算一个页面的总数。

for($i=0;$i<3;$i++){ $source_url =$cars[$i]; $rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,$rest_url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $content = curl_exec($curl); curl_close($curl); $message=stripslashes($content); $xml_record = simplexml_load_string($message); $fb_like_count = $xml_record->link_stat->like_count; echo "".$fb_like_count; mail("abc@gmail.com","hi".$fb_like_count,$message); } 

但我geting未定义的调用函数错误。

对于PHP 7和Ubuntu 14.04,过程如下。 由于PHP 7不在官方Ubuntu PPA中,因此您可能通过OndřejSurý的PPA(sudo add-apt-repository ppa:ondrej / php)安装了它。 转到/etc/php/7.0/fpm并编辑php.ini,取消对以下行的注释:

 extension=php_xmlrpc.dll 

然后只需安装php7.0-xml:

 sudo apt-get install php7.0-xml 

并重新启动PHP:

 sudo service php7.0-fpm restart 

如果您使用的是包含PHP 7的更高版本的Ubuntu版本,则该过程很可能也是相同的(除了添加任何第三方存储库)。

如果没有安装XML模块,请安装它。

ubuntu 14.04上的当前版本5.6:

 sudo apt-get install php5.6-xml 

确保你已经在php.ini安装并启用了php-xml模块。

你也可以改变对json的响应格式,这更容易处理。 在这种情况下,你只需要添加&format=json到URL查询string。

 $rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url); 

然后使用json_decode()来检索脚本中的数据:

 $result = json_decode($content, true); $fb_like_count = $result['like_count']; 

我认为它可以是这样的邮政: 类'SimpleXMLElement'没有发现在PHP PHP 5.6所以也许你可以安装/激活

 php-xml or php-simplexml 

不要忘记激活php.ini文件中的库。 (如顶端的评论 )