J'implémente la fonction de décompte de Facebook à l'aide du fichier cron. Dans lequel cron est exécuté toutes les 10 minutes et compte le nombre total de pages 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 je reçois une erreur de fonction d’appel non définie.
Pour PHP 7 et Ubuntu 14.04, la procédure est la suivante. Puisque PHP 7 ne figure pas dans les PPA officiels d'Ubuntu, vous l'avez probablement installé via le PPA d'Ondřej Surý (Sudo add-apt-repository ppa: ondrej/php). Allez dans /etc/php/7.0/fpm et éditez le fichier php.ini, sans commenter 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
Si vous utilisez une version ultérieure d'Ubuntu où PHP 7 est inclus, la procédure est probablement la même (à l'exception de l'ajout d'un référentiel tiers).
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
Je pense que cela peut ressembler à quelque chose comme dans cet article: La classe 'SimpleXMLElement' ne se trouve pas sur le puphpet PHP 5.6 Vous pouvez donc peut-être installer/activer
php-xml or php-simplexml
N'oubliez pas d'activer les bibliothèques dans le fichier php.ini . (comme le haut commentaire )
Assurez-vous que le module php-xml est installé et activé dans php.ini
.
Vous pouvez également modifier le format de réponse en json, qui est plus facile à gérer. Dans ce cas, vous devez uniquement ajouter &format=json
à la chaîne de requête d'URL.
$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url);
Ensuite, utilisez json_decode()
pour récupérer des données dans votre script:
$result = json_decode($content, true);
$fb_like_count = $result['like_count'];
Pour corriger cette erreur sur Centos 7:
Installez l'extension PHP:
Sudo yum install php-xml
Redémarrez votre serveur Web. Dans mon cas c'est php-fpm:
services php-fpm redémarrer