调用未定义的函数: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文件中的库。 (如顶端的评论 )