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 la bonne chose 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 bogue qui ne génère 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).

    $loaded = extension_loaded("SimpleXML");

    Renvoie VRAI ou FAUX.

    PS Je ne bois 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 une bouée de sauvetage ! Ce qui est drôle, c'est que (moins le strtolower), j'ai effectivement eu mon exemple de code en cours d'exécution et en utilisant la bonne évaluation. Il a dû être tard car au moment où je l'ai mis, je l'ai foiré !

      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

    puis il s'est 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..