PHP: Ist SimpleXML geladen?

Depositphotos 11843590 s

Es gibt ein paar Plugins, die ich erstellt habe und die PHP5 + und erfordern SimpleXML. SimpleXML ist eine viel einfachere und leistungsfähigere Methode zum Parsen von XML-Antworten aus APIs. Das Problem ist jedoch, dass ich einige E-Mails pro Tag oder Woche erhielt, in denen ich gefragt wurde, warum der Benutzer das Programm nicht laden konnte und dies zu Fehlern führte.

Anscheinend reichten meine Hinweise auf den Plugins und auf den Projektseiten nicht aus, also habe ich das Richtige getan und beiden Plugins Funktionen hinzugefügt, um zu überprüfen, ob die SimpleXML-Erweiterung geladen ist.

Die PHP-Funktion zum Überprüfen der SimpleXML-Erweiterung ist geladen:

Funktion isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ result = false; foreach ($ array als $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} return $ result; }}

Jetzt kann ich innerhalb der Funktionen, die SimpleXML verwenden, einfach sicherstellen, dass es geladen ist, bevor ich den SimpleXML-Aufruf tatsächlich versuche. Wenn

if (! isSimpleXMLLoaded ()) {echo "Hosten Sie Ihre Site woanders!"; Rückkehr; }}

Ich weiß, dass ich einige PHP-Gurus habe, die mein Blog im Auge behalten. Lassen Sie mich wissen, wie ich es gemacht habe! Ich habe kleinere Updates für beide Plugins veröffentlicht, um diese Methode zu verwenden.

6 Kommentare

  1. 1

    Hallo Doug,

    Ich habe einen Fehler bemerkt, der wahrscheinlich keinen Fehler auslöst.

    if ($ value = “SimpleXML”) {$ result = true; }}

    sollte sein

    if ($ value == “SimpleXML”) {$ result = true; }}

    Obwohl aus Sicherheitsgründen. Ich bevorzuge.

    if (strtolower ($ value) == "simplexml") {$ result = true; }}

    Sie können auch 'extension_loaded' verwenden, bei dem der Name der Erweiterung überprüft wird (Groß- und Kleinschreibung beachten).

    $ load = extension_loaded ("SimpleXML");

    Gibt TRUE oder FALSE zurück.

    PS Trinke selbst keinen Kaffee, aber ich kann einen "Kauf mir eine Schachtel Donuts" setzen 🙂

    • 2

      Mach den Donutknopf hoch, Nick! Sie sind ein Lebensretter! Das Komische ist, dass (abzüglich des strtolower) tatsächlich mein Beispielcode ausgeführt wurde und die richtige Auswertung verwendet wurde. Es muss spät gewesen sein, denn als ich es hineingelegt habe, habe ich es vermasselt!

      Ich habe den Code und den Blogbeitrag geändert. Frage: Irgendein Vorteil des einen gegenüber dem anderen? Ich denke, dass extension_loaded eine viel sauberere und schnellere Möglichkeit ist, damit umzugehen!

      Danke Nick!

  2. 4

    yum installiere php55-xml.x86_64, um simpleXML für php 5.5.11 zu installieren

    Laufende Transaktion
    Installing : php55-xml-5.5.11-1.el6.x86_64 1/1
    Verifying : php55-xml-5.5.11-1.el6.x86_64 1/1

    und dann installiert
    /usr/lib64/php/modules/simplexml.so

  3. 5

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.