PHP: Aufruf einer undefinierten Funktion: simplexml_load_string()

Lesezeit: 4 Minuten

Benutzer-Avatar
anil

Ich implementiere die Facebook-Zählfunktion mithilfe der Cron-Datei. In dem cron alle 10 Minuten läuft und die gesamten Likes einer Seite zählt.

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 erhalte einen undefinierten Anruffunktionsfehler.

  • Haben Sie php-xml Modul installiert und aktiviert?

    – Marian0

    3. Juli 2015 um 11:57 Uhr


Benutzer-Avatar
Andreas Bergström

Für PHP 7 und Ubuntu 14.04 ist die Vorgehensweise wie folgt. Da PHP 7 nicht in den offiziellen Ubuntu-PPAs enthalten ist, haben Sie es wahrscheinlich über das PPA von Ondřej Surý installiert (sudo add-apt-repository ppa:ondrej/php). Gehen Sie zu /etc/php/7.0/fpm und bearbeiten Sie php.ini, kommentieren Sie die folgende Zeile aus:

extension=php_xmlrpc.dll

Dann einfach php7.0-xml installieren:

sudo apt-get install php7.0-xml

Und PHP neu starten:

sudo service php7.0-fpm restart

Und starten Sie Apache neu:

sudo service apache2 restart

Wenn Sie eine neuere Ubuntu-Version verwenden, in der PHP 7 enthalten ist, ist das Verfahren höchstwahrscheinlich ebenfalls dasselbe (außer dem Hinzufügen eines Repositorys von Drittanbietern).

  • Nur zu Ihrer Information, Sie müssen extension=php_xmlrpc.dll auf Ubuntu nicht auskommentieren, da dies eine Windows-Erweiterung ist. Führen Sie einfach den zweiten Schritt aus und es wird funktionieren

    – wmfrancia

    11. Oktober 2016 um 16:42 Uhr

  • Ich bin genauso vorgegangen: Ich bekomme immer noch den Aufruf der undefinierten Funktion simplexml_load_string() in /var/www/html/magento1901/lib/Varien/Simplexml/Config.php in Zeile 510

    – Sushivam

    26. Oktober 2016 um 6:16 Uhr

  • Ich hatte einen unerkannten Dienstfehler erhalten. Ich habe gerade Apache2 neu gestartet und das hat dieses Problem behoben. Danke für die Hilfe, diese Zeile in PHP.ini zu finden

    – Codierter Behälter

    28. Oktober 2016 um 17:28 Uhr

  • ja, das hat funktioniert, und ich konnte den ersten Schritt überspringen, wie @wmfrancia feststellte.

    – Linnea Huxford

    24. Dezember 2016 um 20:02 Uhr

  • Ich habe das gleiche versucht, aber hat bei mir nicht funktioniert. Aus dem Fehlerprotokoll Uncaught Error: Call to undefined function simplexml_load_string() in /var/www/html/lib/Varien/Simplexml/Config.php

    – Shubham Agarwal

    29. März 2017 um 22:46 Uhr

Benutzer-Avatar
Fabian Blechschmidt

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

Und vergessen Sie nicht, danach den Befehl sudo service apache2 restart auszuführen

Zulhilmi Zainudi

  • Sie können einfach “sudo apt install php-xml” ausführen und es wird die richtige Version für Sie erhalten.

    – Naomi

    25. Oktober 2018 um 11:35 Uhr

  • Und das Laufen nicht vergessen sudo service apache2 restart Befehl danach

    – Zulhilmi Zainudin

    11. Mai 2020 um 8:45 Uhr

Ich stand auch vor diesem Problem. Mein Betriebssystem ist Ubuntu 18.04 und meine PHP-Version ist PHP7.2.

So habe ich es gelöst:

Installieren Sie Simplexml auf Ihrem Ubuntu-Server:

sudo apt-get install php7.2-simplexml

Starten Sie den Apache-Server neu

sudo systemctl restart apache2

Das ist alles.

ich hoffe das hilft

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

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

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

Und dann verwenden json_decode() So rufen Sie Daten in Ihrem Skript ab:

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

Benutzer-Avatar
Björn Pfoster

Ich denke, es kann so etwas wie in diesem Beitrag sein: Class ‘SimpleXMLElement’ not found on puppet PHP 5.6 Also könnten Sie vielleicht installieren/aktivieren

php-xml or php-simplexml

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

  • Versuchen Sie dies auch Verknüpfung

    – Björn Pfoster

    26. Juli 2017 um 11:43 Uhr

Für Nginx (ohne Apache) und PHP 7.2 war die Installation von php7.2-xml nicht genug. Musste das Paket php7.2-simplexml installieren, damit es funktioniert

Also die Befehle für debian/ubuntu, Pakete aktualisieren und beide Pakete installieren

apt update
apt install php7.2-xml php7.2-simplexml

Und starten Sie sowohl Nginx als auch PHP neu

systemctl restart nginx php7.2-fpm

  • Versuchen Sie dies auch Verknüpfung

    – Björn Pfoster

    26. Juli 2017 um 11:43 Uhr

Benutzer-Avatar
janik

Um diesen Fehler zu beheben auf Cent 7:

  1. Installieren Sie die PHP-Erweiterung:

    sudo yum installiere php-xml

  2. Starten Sie Ihren Webserver neu. In meinem Fall ist es php-fpm:

    Dienste php-fpm neu starten

1354550cookie-checkPHP: Aufruf einer undefinierten Funktion: simplexml_load_string()

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy