PHP: Ali je SimpleXML naložen?

Depositphotos 11843590 s

Obstaja nekaj vtičnikov, ki sem jih zgradil in ki zahtevajo PHP5 + in SimpleXML. SimpleXML je veliko enostavnejša in učinkovitejša metoda razčlenjevanja odzivov XML APIs. Težava pa je v tem, da bi na dan ali v tednu prejel nekaj e-poštnih sporočil, v katerih bi me vprašal, zakaj uporabnik ni mogel naložiti programa, kar je povzročilo napake.

Očitno moja obvestila na vtičnikih in na straneh projekta niso bila dovolj, zato sem naredil prav in obema vtičnikom dodal funkcionalnost, da preverim, ali je razširitev SimpleXML naložena.

Funkcija PHP za preverjanje nalaganja razširitve SimpleXML:

funkcija jeSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ rezultat = napačno; foreach ($ array kot $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} vrni $ rezultat; }

Zdaj lahko znotraj funkcij, ki uporabljajo SimpleXML, preprosto poskrbim, da se naloži, preden dejansko poskusim s klicem SimpleXML. Če

if (! isSimpleXMLLoaded ()) {echo "Gostovanje vašega spletnega mesta nekje drugje!"; vrnitev; }

Vem, da imam nekaj PHP gurujev, ki spremljajo moj blog, in mi sporočite, kako sem se počutil! Za uporabo te metode sem izdal manjše posodobitve obeh vtičnikov.

6 Komentarji

  1. 1

    Živjo Doug,

    Opazil sem eno napako, ki verjetno ne povzroči napake.

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

    moral bi biti

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

    Čeprav zaradi varnosti. Raje bi.

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

    Lahko uporabite tudi 'extension_loaded', ki za preverjanje sprejme ime razširitve (občutljivo na velike in male črke).

    $ loaded = extension_loaded (“SimpleXML”);

    Vrne TRUE ali FALSE.

    PS Ne pijte kave sam, lahko pa dam gumb 'kupi mi škatlo krofov' 🙂

    • 2

      Dvigni ta gumb za krofe, Nick! Ti si rešitelj v živo! Smešno je, da sem (minus strtolower) dejansko zagnal vzorčno kodo in uporabil pravo oceno. Gotovo je bilo že pozno, ker sem ga, ko sem ga vstavil, zmotil!

      Spremenil sem kodo in objavo v spletnem dnevniku. Vprašanje: Kakšna prednost enega pred drugim? Mislim, da je extension_loaded veliko čistejši in hitrejši način reševanja tega!

      Hvala Nick!

  2. 4

    yum namestite php55-xml.x86_64 za namestitev simpleXML za php 5.5.11

    Izvajanje transakcije
    Namestitev: php55-xml-5.5.11-1.el6.x86_64 1/1
    Preverjanje: php55-xml-5.5.11-1.el6.x86_64 1/1

    in nato nameščen
    /usr/lib64/php/modules/simplexml.so

  3. 5

Kaj menite?

Ta stran uporablja Akismet za zmanjšanje nezaželene pošte. Preberite, kako se vaš komentar obravnava.