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-xml
mó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.dll
Luego, simplemente instale php7.0-xml:
sudo apt-get install php7.0-xml
Y reinicia PHP:
sudo service php7.0-fpm restart
Y reinicia Apache:
sudo service apache2 restart
Si 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-xml
Zulhilmi Zainudi
fuente
sudo service apache2 restart
comando 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-simplexml
Reinicie 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=json
a 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-simplexml
Y reinicia tanto Nginx como php
systemctl restart nginx php7.2-fpm
fuente