PHP: Er SimpleXML lastet?

Depositphotos 11843590 s

Det er et par plugins jeg har bygget som krever PHP5 + og SimpleXML. SimpleXML er en mye enklere og bedre utførelsesmetode for å analysere XML-svar fra APIs. Problemet er imidlertid at jeg får noen e-postmeldinger om dagen eller uken og spør meg hvorfor brukeren ikke kunne laste programmet, og det resulterte i feil.

Tilsynelatende var ikke merknadene mine på programtilleggene og på prosjektsidene nok, så jeg gjorde det rette og la funksjonalitet til begge programtilleggene for å bekrefte at SimpleXML-utvidelsen er lastet inn.

PHP-funksjon for å sjekke at SimpleXML-utvidelsen er lastet:

funksjonen erSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ resultat = usant; foreach ($ array som $ i => $ verdi) {if (strtolower ($ value) == "simplexml") {$ result = true; }} returner $ resultat; }

Nå, innen funksjonene som bruker SimpleXML, kan jeg ganske enkelt sikre at den er lastet før jeg faktisk prøver SimpleXML-samtalen. Hvis

if (! isSimpleXMLLoaded ()) {echo "Vert nettstedet ditt et annet sted!"; komme tilbake; }

Jeg vet at jeg har noen PHP-guruer som holder øye med bloggen min, gi meg beskjed om hvordan jeg gjorde det! Jeg har gitt ut mindre oppdateringer til begge pluginsene for å bruke denne metoden.

6 Kommentarer

  1. 1

    Hei Doug,

    Jeg la merke til en feil som sannsynligvis ikke gir noen feil.

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

    bør være

    hvis ($ verdi == “SimpleXML”) {$ resultat = sant; }

    Selv om det er for sikkerhets skyld. Jeg foretrekker.

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

    Du kan også bruke 'extension_loaded' som tar utvidelsesnavnet for å sjekke (skift mellom store og små bokstaver).

    $ loaded = extension_loaded (“SimpleXML”);

    Returnerer SANT eller FALSK.

    PS Ikke drikk kaffe selv, men jeg kan sette en knapp "kjøp en boks med smultringer"

    • 2

      Få den smultringsknappen opp, Nick! Du er en livredder! Det som er morsomt er at (minus strtolower), at jeg faktisk hadde prøvekoden min kjørt og brukte riktig evaluering. Det må ha vært sent, for da jeg la det inn, rotet jeg det opp!

      Jeg har endret koden og blogginnlegget. Spørsmål: Er det noen fordeler med hverandre? Jeg antar at extension_loaded er en mye renere og raskere måte å takle dette på!

      Takk Nick!

  2. 4

    yum installer php55-xml.x86_64 for å installere simpleXML for php 5.5.11

    Kjører transaksjon
    Installasjon: php55-xml-5.5.11-1.el6.x86_64 1/1
    Bekreftelse: php55-xml-5.5.11-1.el6.x86_64 1/1

    og deretter installerte den
    /usr/lib64/php/modules/simplexml.so

  3. 5

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.