Я реализую функцию подсчета facebook, используя файл cron. В котором cron запускается каждые 10 минут и подсчитывает общее количество лайков страницы.
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("abc@gmail.com","hi".$fb_like_count,$message);
}
Но я получаю неопределенную ошибку функции вызова.
php-xml
установлен и включен модуль?Ответы:
Для PHP 7 и Ubuntu 14.04 процедура следующая. Поскольку PHP 7 не входит в официальный PPA Ubuntu, вы, вероятно, установили его через PPA Ондржея Сури (sudo add-apt-repository ppa: ondrej / php). Перейдите в /etc/php/7.0/fpm и отредактируйте php.ini, раскомментируя следующую строку:
extension=php_xmlrpc.dll
Затем просто установите php7.0-xml:
sudo apt-get install php7.0-xml
И перезапустите PHP:
sudo service php7.0-fpm restart
И перезапустите Apache:
sudo service apache2 restart
Если вы используете более позднюю версию Ubuntu, в которую включен PHP 7, процедура, скорее всего, такая же (за исключением добавления любого стороннего репозитория).
источник
Если модуль XML не установлен, установите его.
Текущая версия 5.6 в ubuntu 14.04:
sudo apt-get install php5.6-xml
Зулхилми Зайнуди
источник
sudo service apache2 restart
команду после этогоЯ тоже столкнулся с этой проблемой. Моя операционная система - Ubuntu 18.04, а моя версия PHP - PHP 7.2 .
Вот как я это решил:
Установите Simplexml на свой сервер Ubuntu:
sudo apt-get install php7.2-simplexml
Перезагрузите сервер Apache
Это все.
надеюсь, это поможет
источник
Убедитесь, что у вас установлен и включен модуль php-xml
php.ini
.Вы также можете изменить формат ответа на json, который легче обрабатывать. В этом случае вам нужно только добавить
&format=json
в строку запроса url.$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url);
А затем используйте
json_decode()
для получения данных в вашем скрипте:$result = json_decode($content, true); $fb_like_count = $result['like_count'];
источник
Я думаю, это может быть что-то вроде этого сообщения: Класс SimpleXMLElement не найден в puphpet PHP 5.6 Так что, возможно, вы могли бы установить / активировать
Не забудьте активировать библиотеки в файле php.ini . (как верхний комментарий )
источник
Чтобы исправить эту ошибку на Centos 7 :
Установите расширение PHP:
sudo yum установить php-xml
Перезагрузите ваш веб-сервер. В моем случае это php-fpm :
перезапуск сервисов php-fpm
источник
Для Nginx (без apache) и PHP 7.2 установки php7.2-xml было недостаточно. Пришлось установить пакет php7.2-simplexml, чтобы заставить его работать
Итак, команды для debian / ubuntu, обновить пакеты и установить оба пакета
apt update apt install php7.2-xml php7.2-simplexml
И перезапустите Nginx и php
источник