Я создал пару плагинов, требующих 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, которые следят за моим блогом, дайте мне знать, как я это сделал! Я выпустил небольшие обновления для обоих плагинов, чтобы использовать этот метод.
Привет, Дуг,
Я заметил одну ошибку, которая, вероятно, не вызывает ошибку.
если ($ значение = "SimpleXML") { $ результат = истина; }
должно быть
если ($value == «SimpleXML») { $result = true; }
Хотя в целях безопасности. Я предпочитаю.
if (strtolower($value) == «simplexml») { $result = true; }
Вы также можете использовать «extension_loaded», который принимает имя расширения для проверки (с учетом регистра).
$loaded = extension_loaded («SimpleXML»);
Возвращает ИСТИНА или ЛОЖЬ.
PS Сам кофе не пью, но могу поставить кнопку "купи коробку пончиков" 🙂
Подними кнопку с пончиком, Ник! Ты спасатель! Забавно то, что (за вычетом strtolower) мой пример кода действительно работал и использовал правильную оценку. Должно быть, было поздно, потому что к тому времени, как я вставил его, я все испортил!
Я изменил код и сообщение в блоге. Вопрос: Есть ли преимущество одного над другим? Я предполагаю, что extension_loaded — гораздо более чистый и быстрый способ справиться с этим!
Спасибо, Ник!
extension_loaded - это путь.
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
Почему бы вам просто не сделать «extension_loaded ('SimpleXML')»? http://php.net/manual/en/function.extension-loaded.php
Спасибо Джо! Отличный совет.