I am implementing facebook count function using cron file. In which cron runs every 10 minutes and counts the total likes of a page.
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("[email protected]","hi".$fb_like_count,$message);
}
But I am geting undefined call function error.
php-xml
module installed and enabled?Respostas:
For PHP 7 and Ubuntu 14.04 the procedure is follows. Since PHP 7 is not in the official Ubuntu PPAs you likely installed it through Ondřej Surý's PPA (sudo add-apt-repository ppa:ondrej/php). Go to /etc/php/7.0/fpm and edit php.ini, uncomment to following line:
extension=php_xmlrpc.dll
Then simply install php7.0-xml:
sudo apt-get install php7.0-xml
And restart PHP:
sudo service php7.0-fpm restart
And restart Apache:
sudo service apache2 restart
If you are on a later Ubuntu version where PHP 7 is included, the procedure is most likely the same as well (except adding any 3rd party repository).
fonte
If the XML module is not installed, install it.
Current version 5.6 on ubuntu 14.04:
sudo apt-get install php5.6-xml
Zulhilmi Zainudi
fonte
sudo service apache2 restart
command after itI also faced this issue. My Operating system is Ubuntu 18.04 and my PHP version is PHP 7.2.
Here's how I solved it:
Install Simplexml on your Ubuntu Server:
sudo apt-get install php7.2-simplexml
Restart Apache Server
That's all.
I hope this helps
fonte
Make sure that you have php-xml module installed and enabled in
php.ini
.Você também pode alterar o formato de resposta para json, que é mais fácil de manusear. Nesse caso, você só precisa adicionar
&format=json
a string de consulta do url.$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url);
E, em seguida, use
json_decode()
para recuperar dados em seu script:$result = json_decode($content, true); $fb_like_count = $result['like_count'];
fonte
Acho que pode ser algo como neste Post: Classe 'SimpleXMLElement' não encontrada no puphpet PHP 5.6 Então talvez você possa instalar / ativar
Não se esqueça de ativar as bibliotecas no arquivo php.ini . (como o comentário principal )
fonte
Para corrigir esse erro no Centos 7 :
Instale a extensão PHP:
sudo yum install php-xml
Reinicie o seu servidor web. No meu caso é php-fpm :
reiniciar serviços php-fpm
fonte
Para Nginx (sem apache) e PHP 7.2, instalar php7.2-xml não era suficiente. Tive que instalar o pacote php7.2-simplexml para fazê-lo funcionar
Portanto, os comandos para debian / ubuntu atualizam os pacotes e instalam os dois pacotes
apt update apt install php7.2-xml php7.2-simplexml
E reinicie o Nginx e o php
fonte