PHP: SimpleXML est-il chargé?

Depositphotos 11843590 s

Il y a quelques plugins que j'ai construits qui nécessitent PHP5 + et SimpleXML. SimpleXML est une méthode beaucoup plus simple et plus performante d'analyse des réponses XML à partir de APIs. Le problème, cependant, est que je recevais quelques courriels par jour ou par semaine me demandant pourquoi l'utilisateur ne pouvait pas charger le programme et cela entraînait des erreurs.

Apparemment, mes avis sur les plugins et sur les pages du projet n'étaient pas suffisants, j'ai donc fait ce qu'il fallait et ajouté des fonctionnalités aux deux plugins pour vérifier que l'extension SimpleXML est chargée.

La fonction PHP pour vérifier que l'extension SimpleXML est chargée:

function isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ résultat = faux; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} retourne $ result; }

Maintenant, dans les fonctions qui utilisent SimpleXML, je peux simplement m'assurer qu'il est chargé avant d'essayer réellement l'appel SimpleXML. Si

if (! isSimpleXMLLoaded ()) {echo "Hébergez votre site ailleurs!"; revenir; }

Je sais que j'ai des gourous de PHP qui gardent un œil sur mon blog, dites-moi comment j'ai fait! J'ai publié des mises à jour mineures des deux plugins pour utiliser cette méthode.

6 Commentaires

  1. 1

    Salut Doug,

    J'ai remarqué un seul bogue qui ne soulève probablement pas d'erreur.

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

    devrait être

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

    Bien que pour des raisons de sécurité. Je préfère.

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

    Vous pouvez également utiliser 'extension_loaded' qui prend le nom de l'extension à vérifier (sensible à la casse).

    $ chargé = extension_loaded ("SimpleXML");

    Renvoie TRUE ou FALSE.

    PS: Ne buvez pas de café moi-même, mais je peux mettre un bouton `` achetez-moi une boîte de beignets '' 🙂

    • 2

      Relevez ce bouton de beignet, Nick! Vous êtes un sauveur! Ce qui est drôle, c'est que (moins le strtolower), j'ai en fait mon exemple de code en cours d'exécution et en utilisant la bonne évaluation. Il a dû être en retard car au moment où je l'ai mis en place, je l'ai raté!

      J'ai modifié le code et le billet de blog. Question: Y a-t-il un avantage de l'un sur l'autre? Je suppose que l'extension_loaded est un moyen beaucoup plus propre et plus rapide de gérer cela!

      Merci Nick!

  2. 4

    yum install php55-xml.x86_64 pour installer simpleXML pour php 5.5.11

    Transaction en cours
    Installation: php55-xml-5.5.11-1.el6.x86_64 1/1
    Vérification: php55-xml-5.5.11-1.el6.x86_64 1/1

    et puis il a installé
    /usr/lib64/php/modules/simplexml.so

  3. 5

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..