PHP: загружен ли SimpleXML?

Depositphotos 11843590 с

Я создал пару плагинов, требующих PHP5 + и SimpleXML. SimpleXML - это гораздо более простой и эффективный метод синтаксического анализа ответов XML от APIс. Проблема, однако, в том, что я получал несколько писем в день или неделю, спрашивая меня, почему пользователь не может загрузить программу, и это привело к ошибкам.

Судя по всему, моих уведомлений в плагинах и на страницах проекта было недостаточно, поэтому я поступил правильно и добавил функциональность в оба плагина, чтобы убедиться, что расширение SimpleXML загружено.

Функция PHP для проверки расширения SimpleXML загружена:

функция isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ result = false; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} return $ result; }

Теперь в функциях, использующих SimpleXML, я могу просто убедиться, что он загружен, прежде чем я действительно попробую вызов SimpleXML. Если

if (! isSimpleXMLLoaded ()) {echo "Разместите свой сайт в другом месте!"; возвращение; }

Я знаю, что у меня есть гуру PHP, которые следят за моим блогом, дайте мне знать, как я это сделал! Я выпустил небольшие обновления для обоих плагинов, чтобы использовать этот метод.

6 комментариев

  1. 1

    Привет, Дуг,

    Я заметил одну ошибку, которая, вероятно, не вызывает ошибки.

    если ($ value = «SimpleXML») {$ result = true; }

    должно быть

    если ($ value == «SimpleXML») {$ result = true; }

    Хотя в целях безопасности. Я предпочитаю.

    если (strtolower ($ value) == «simplexml») {$ result = true; }

    Вы также можете использовать extension_loaded, который проверяет имя расширения (с учетом регистра).

    $ loaded = extension_loaded («SimpleXML»);

    Возвращает ИСТИНА или ЛОЖЬ.

    PS Сам кофе не пью, но могу поставить кнопку «Купи мне коробку пончиков» 🙂

    • 2

      Подними эту кнопку пончика, Ник! Ты спасатель! Что забавно, так это то, что (без strtolower) у меня действительно был запущен пример кода и использовалась правильная оценка. Должно быть, было поздно, потому что к тому времени, как я его вставил, я все испортил!

      Я изменил код и сообщение в блоге. Вопрос: Есть ли преимущество одного перед другим? Я думаю, extension_loaded - намного более чистый и быстрый способ справиться с этим!

      Спасибо, Ник!

  2. 4

    yum install php55-xml.x86_64 для установки simpleXML для php 5.5.11

    Выполняемая транзакция
    Установка: php55-xml-5.5.11-1.el6.x86_64 1/1
    Проверка: php55-xml-5.5.11-1.el6.x86_64 1/1

    а затем он установил
    /usr/lib64/php/modules/simplexml.so

  3. 5

Как вы думаете?

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.