我正在使用cron文件实现facebook count功能。其中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);
}
但是我正在调整未定义的调用函数错误。
答案 0 :(得分:134)
对于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
如果您使用的是后来的Ubuntu版本,其中包含PHP 7,则该过程很可能也是相同的(除了添加任何第三方存储库)。
答案 1 :(得分:39)
如果未安装XML模块,请安装它。
ubuntu 14.04上的当前版本5.6:
sudo apt-get install php5.6-xml
答案 2 :(得分:8)
我也遇到了这个问题。我的操作系统是 Ubuntu 18.04 ,我的PHP版本是 PHP 7.2 。
这是我的解决方法:
在Ubuntu服务器上安装Simplexml:
sudo apt-get install php7.2-simplexml
重新启动Apache服务器
sudo systemctl restart apache2
仅此而已。
我希望这会有所帮助
答案 3 :(得分:4)
我认为它可能像这篇文章中的内容: Class 'SimpleXMLElement' not found on puphpet PHP 5.6 所以也许你可以安装/激活
php-xml or php-simplexml
不要忘记激活 php.ini 文件中的库。 (如顶部comment)
答案 4 :(得分:2)
确保在php.ini
中安装并启用了php-xml模块。
您还可以将响应格式更改为更容易处理的json。在这种情况下,您只需要将&format=json
添加到url查询字符串。
$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'];
答案 5 :(得分:0)
要在 Centos 7 上修复此错误:
安装PHP扩展名:
sudo yum install php-xml
重新启动您的Web服务器。就我而言,它是 php-fpm :
服务php-fpm重新启动
答案 6 :(得分:0)
对于Nginx(没有Apache)和PHP 7.2,仅安装php7.2-xml是不够的。必须安装php7.2-simplexml软件包才能使其正常工作
因此,用于debian / ubuntu的命令会更新软件包并安装这两个软件包
apt update
apt install php7.2-xml php7.2-simplexml
然后重新启动Nginx和php
systemctl restart nginx php7.2-fpm