PHP: SimpleXML è caricato?

11843590 s

Ci sono un paio di plugin che ho creato che richiedono PHP5 + e SimpleXML. SimpleXML è un metodo molto più semplice e con migliori prestazioni per analizzare le risposte XML da APIS. Il problema, tuttavia, è che ricevevo poche e-mail al giorno o alla settimana che mi chiedevano perché l'utente non poteva caricare il programma e questo causava errori.

Apparentemente, i miei avvisi sui plugin e sulle pagine del progetto non erano sufficienti, quindi ho fatto la cosa giusta e ho aggiunto funzionalità a entrambi i plugin per verificare che l'estensione SimpleXML sia caricata.

Funzione PHP per verificare che l'estensione SimpleXML sia caricata:

funzione isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ risultato = falso; foreach ($ array come $ i => $ valore) {if (strtolower ($ valore) == "simplexml") {$ risultato = true; }} restituisce $ risultato; }

Ora, all'interno delle funzioni che utilizzano SimpleXML, posso semplicemente assicurarmi che sia caricato prima di provare effettivamente la chiamata SimpleXML. Se

if (! isSimpleXMLLoaded ()) {echo "Ospita il tuo sito da qualche altra parte!"; ritorno; }

So di avere alcuni guru di PHP che tengono d'occhio il mio blog, fammi sapere come ho fatto! Ho rilasciato aggiornamenti minori a entrambi i plugin per utilizzare questo metodo.

Commenti

  1. 1

    Ciao Doug,

    Ho notato un bug che probabilmente non genera un errore.

    if ($ valore = "SimpleXML") {$ risultato = vero; }

    dovrebbe essere

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

    Anche se per motivi di sicurezza. Preferisco.

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

    Puoi anche usare 'extension_loaded' che prende il nome dell'estensione da controllare (distingue tra maiuscole e minuscole).

    $ caricato = extension_loaded ("SimpleXML");

    Restituisce VERO o FALSO.

    PS Non bevo caffè da solo, ma potrei mettere un pulsante "comprami una scatola di ciambelle" 🙂

    • 2

      Alza quel bottone a ciambella, Nick! Sei un salvavita! La cosa divertente è che (meno lo strtolower), in realtà avevo il mio codice di esempio in esecuzione e utilizzavo la giusta valutazione. Deve essere stato tardi perché quando l'ho inserito, l'ho incasinato!

      Ho modificato il codice e il post sul blog. Domanda: Qualche vantaggio dell'uno sull'altro? Immagino che extension_loaded sia un modo molto più pulito e veloce per affrontare questo problema!

      Grazie Nick!

  2. 4

    yum installa php55-xml.x86_64 per installare simpleXML per php 5.5.11

    Transazione in esecuzione
    Installazione: php55-xml-5.5.11-1.el6.x86_64 1/1
    Verifica: php55-xml-5.5.11-1.el6.x86_64 1/1

    e poi è installato
    /usr/lib64/php/modules/simplexml.so

  3. 5

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.