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

    Привет, Дуг,

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

    если ($ значение = "SimpleXML") { $ результат = истина; }

    должно быть

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

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

    if (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 для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.