Estoy implementando la función de conteo de Facebook usando el archivo cron. En el que cron se ejecuta cada 10 minutos y cuenta el total de Me gusta de una página.
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);
}
Pero estoy obteniendo un error de función de llamada indefinido.

php-xmlmódulo instalado y habilitado?Respuestas:
Para PHP 7 y Ubuntu 14.04, el procedimiento es el siguiente. Dado que PHP 7 no está en los PPA oficiales de Ubuntu, probablemente lo instaló a través del PPA de Ondřej Surý (sudo add-apt-repository ppa: ondrej / php). Vaya a /etc/php/7.0/fpm y edite php.ini, elimine el comentario de la siguiente línea:
extension=php_xmlrpc.dllLuego, simplemente instale php7.0-xml:
sudo apt-get install php7.0-xmlY reinicia PHP:
sudo service php7.0-fpm restartY reinicia Apache:
sudo service apache2 restartSi tiene una versión posterior de Ubuntu en la que se incluye PHP 7, lo más probable es que el procedimiento también sea el mismo (excepto para agregar un repositorio de terceros).
fuente
Si el módulo XML no está instalado, instálelo.
Versión actual 5.6 en ubuntu 14.04:
sudo apt-get install php5.6-xmlZulhilmi Zainudi
fuente
sudo service apache2 restartcomando después de élTambién enfrenté este problema. Mi sistema operativo es Ubuntu 18.04 y mi versión de PHP es PHP 7.2 .
Así es como lo resolví:
Instale Simplexml en su servidor Ubuntu:
sudo apt-get install php7.2-simplexmlReinicie el servidor Apache
Eso es todo.
espero que esto ayude
fuente
Creo que puede ser algo como en esta publicación: la clase 'SimpleXMLElement' no se encuentra en puphpet PHP 5.6 Así que tal vez puedas instalar / activar
No olvide activar las bibliotecas en el archivo php.ini . (como el comentario superior )
fuente
Asegúrese de tener el módulo php-xml instalado y habilitado en
php.ini.También puede cambiar el formato de respuesta a json, que es más fácil de manejar. En ese caso, solo tiene que agregar
&format=jsona la cadena de consulta de URL.$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url);Y luego use
json_decode()para recuperar datos en su secuencia de comandos:$result = json_decode($content, true); $fb_like_count = $result['like_count'];fuente
Para corregir este error en Centos 7 :
Instale la extensión PHP:
sudo yum instalar php-xml
Reinicie su servidor web. En mi caso es php-fpm :
servicios php-fpm reiniciar
fuente
Para Nginx (sin apache) y PHP 7.2, instalar php7.2-xml no fue suficiente. Tuve que instalar el paquete php7.2-simplexml para que funcionara
Entonces, los comandos para debian / ubuntu, actualizan paquetes e instalan ambos paquetes
apt update apt install php7.2-xml php7.2-simplexmlY reinicia tanto Nginx como php
systemctl restart nginx php7.2-fpmfuente