J'implémente la fonction de comptage de Facebook en utilisant le fichier cron. Dans lequel cron s'exécute toutes les 10 minutes et compte le total des goûts d'une 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);
}
Mais j'obtiens une erreur de fonction d'appel non définie.
php-xml
module est-il installé et activé?Réponses:
Pour PHP 7 et Ubuntu 14.04, la procédure est la suivante. Puisque PHP 7 ne fait pas partie des PPA officiels d'Ubuntu, vous l'avez probablement installé via le PPA d'Ondřej Surý (sudo add-apt-repository ppa: ondrej / php). Accédez à /etc/php/7.0/fpm et éditez php.ini, décommentez la ligne suivante:
extension=php_xmlrpc.dll
Ensuite, installez simplement php7.0-xml:
sudo apt-get install php7.0-xml
Et redémarrez PHP:
sudo service php7.0-fpm restart
Et redémarrez Apache:
sudo service apache2 restart
Si vous utilisez une version ultérieure d'Ubuntu où PHP 7 est inclus, la procédure est probablement la même (sauf l'ajout d'un référentiel tiers).
la source
Si le module XML n'est pas installé, installez-le.
Version actuelle 5.6 sur Ubuntu 14.04:
sudo apt-get install php5.6-xml
Zulhilmi Zainudi
la source
sudo service apache2 restart
commande aprèsJ'ai également fait face à ce problème. Mon système d'exploitation est Ubuntu 18.04 et ma version PHP est PHP 7.2 .
Voici comment je l'ai résolu:
Installez Simplexml sur votre serveur Ubuntu:
sudo apt-get install php7.2-simplexml
Redémarrez le serveur Apache
C'est tout.
J'espère que ça aide
la source
Je pense que cela peut être quelque chose comme dans cet article: La classe 'SimpleXMLElement' ne se trouve pas sur puphpet PHP 5.6 Alors peut-être que vous pourriez installer / activer
N'oubliez pas d'activer les bibliothèques dans le fichier php.ini . (comme le commentaire du haut )
la source
Assurez-vous que le module php-xml est installé et activé dans
php.ini
.Vous pouvez également changer le format de réponse en json, ce qui est plus facile à gérer. Dans ce cas, vous devez uniquement ajouter
&format=json
à la chaîne de requête URL.$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url);
Et puis utilisez
json_decode()
pour récupérer des données dans votre script:$result = json_decode($content, true); $fb_like_count = $result['like_count'];
la source
Pour corriger cette erreur sur Centos 7 :
Installez l'extension PHP:
sudo yum installer php-xml
Redémarrez votre serveur Web. Dans mon cas, c'est php-fpm :
redémarrage des services php-fpm
la source
Pour Nginx (sans apache) et PHP 7.2, installer php7.2-xml ne suffisait pas. J'ai dû installer le package php7.2-simplexml pour le faire fonctionner
Donc, les commandes pour debian / ubuntu, mettent à jour les packages et installent les deux packages
apt update apt install php7.2-xml php7.2-simplexml
Et redémarrez Nginx et php
systemctl restart nginx php7.2-fpm
la source