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 en feil.

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

    bør være

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

    Skjønt for sikkerhets skyld. Jeg foretrekker.

    if (strtolower($verdi) == “simplexml”) { $result = sant; }

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

    $loaded = extension_loaded(“SimpleXML”);

    Returnerer TRUE eller FALSE.

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

    • 2

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

      Jeg har endret koden og blogginnlegget. Spørsmål: Noen fordeler med det ene fremfor det andre? Jeg antar at extension_loaded er en mye renere og raskere måte å håndtere dette på!

      Takk Nick!

  2. 4

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

    Kjører transaksjon
    Installerer: php55-xml-5.5.11-1.el6.x86_64 1/1
    Bekrefter: php55-xml-5.5.11-1.el6.x86_64 1/1

    og deretter installert
    /usr/lib64/php/modules/simplexml.so

  3. 5

Hva tror du?

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