2015-07-03 21 views
39

Ich implementiere facebook Zählfunktion mit Cron-Datei. In dem cron läuft alle 10 Minuten und zählt die Gesamtzahl der Likes einer Seite.Aufruf zu undefinierter Funktion: simplexml_load_string()

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); 
} 

Aber ich bin undefined Anruf Funktionsfehler.

+4

Haben Sie 'php-xml' Modul installiert und aktiviert? – marian0

Antwort

2

Stellen Sie sicher, dass das Modul php-xml in php.ini installiert und aktiviert ist.

Sie können das Antwortformat auch in json ändern, was einfacher zu handhaben ist. In diesem Fall müssen Sie nur &format=json zur URL-Abfragezeichenfolge hinzufügen.

$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url); 

Und dann json_decode() verwenden, um Daten in Ihrem Skript abzurufen:

$result = json_decode($content, true); 
$fb_like_count = $result['like_count']; 
+0

Ich habe meine Terminal-PHP-Version geändert, dann funktioniert es gut – anil

23

Wenn das XML-Modul nicht installiert ist, installieren Sie es.

Aktuelle Version 5.6 auf Ubuntu 14.04:

sudo apt-get install php5.6-xml 
84

Für PHP 7 und Ubuntu 14.04 ist das Verfahren folgt. Da PHP 7 nicht in den offiziellen Ubuntu-PPAs enthalten ist, hast du es wahrscheinlich über PPA von Ondřej Surý installiert (sudo add-apt-repository ppa: ondrej/php). Zum /etc/php/7.0/fpm und bearbeiten php.ini Kommentar- um folgende Zeile:

extension=php_xmlrpc.dll 

Dann einfach installieren php7.0-xml:

sudo apt-get install php7.0-xml 

und starten Sie PHP:

sudo service php7.0-fpm restart 

Wenn Sie auf einer späteren Ubuntu-Version sind, in der PHP 7 enthalten ist, ist das Verfahren höchstwahrscheinlich dasselbe (außer das Hinzufügen eines Drittanbieter-Repositorys).

+5

Nur fyi müssen Sie nicht auskommentieren Erweiterung = php_xmlrpc.dll auf Ubuntu als das ist eine Windows-Erweiterung tun Sie einfach den zweiten Schritt und es wird funktionieren – wmfrancia

+0

ich folgte dem gleichen : immer noch bekomme ich Anruf auf undefinierte Funktion Simplexml_load_string() in /var/www/html/magento1901/lib/Varien/Simplexml/Config.php in Zeile 510 –

+0

Ich hatte einen nicht erkannten Dienst Fehler erhalten. Ich habe gerade Apache2 neu gestartet und dieses Problem behoben. Thaks für die Hilfe finden Sie diese Zeile in PHP.ini –

1

denke ich, es so etwas wie in diesem Beitrag sein kann: Class 'SimpleXMLElement' not found on puphpet PHP 5.6 Vielleicht könnten Sie installieren/aktivieren

php-xml or php-simplexml 

Vergessen Sie nicht, die Bibliotheken in der php.ini Datei zu aktivieren. (wie oben comment)

+0

Versuchen Sie auch diese [link] (http://www.webdeveloper.com/forum/showthread.php?191658-RESOLVED-Fatal-error-Call-to-undefined -function-simplexml_load_file() & s = 2a5f7a91ae737417b735ec83fbf17295 & p = 932942 # post932942) –

Verwandte Themen