PHP: Зарежда ли се SimpleXML?

Depositphotos 11843590 с

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

Очевидно моите известия за плъгините и на страниците на проекта не бяха достатъчни, затова постъпих правилно и добавих функционалност към двата плъгина, за да проверя, че разширението SimpleXML е заредено.

PHP функция за проверка на разширението SimpleXML е заредена:

функция isSimpleXMLLoaded () {$ array = array (); $ масив = get_loaded_extensions (); $ резултат = невярно; foreach ($ масив като $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} върнете $ резултат; }

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

if (! isSimpleXMLLoaded ()) {echo "Хоствайте сайта си някъде другаде!"; връщане; }

Знам, че имам някои PHP гурута, които следят блога ми, кажете ми как се справих! Пуснах малки актуализации на двата плъгина, за да използвам този метод.

6 Коментари

  1. 1

    Здравей Дъг,

    Забелязах една грешка, която вероятно не води до грешка.

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

    трябва да бъде

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

    Макар и от съображения за безопасност. Предпочитам.

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

    Можете също да използвате 'extension_loaded', което взема името на разширението за проверка (чувствително към малки и големи букви).

    $ loaded = extension_loaded (“SimpleXML”);

    Връща TRUE или FALSE.

    PS Не пийте кафе сам, но мога да поставя бутон „купете ми кутия понички“ 🙂

    • 2

      Вземи този бутон за поничка, Ник! Вие сте спасител на живо! Смешното е, че (минус strtolower), всъщност моят примерен код работи и използвам правилната оценка. Сигурно беше късно, защото докато го сложа, го обърках!

      Промених кода и публикацията в блога. Въпрос: Някакво предимство на едното пред другото? Предполагам, че extension_loaded е много по-чист и бърз начин за справяне с това!

      Благодаря Ник!

  2. 4

    yum инсталирате php55-xml.x86_64, за да инсталирате simpleXML за php 5.5.11

    Текуща транзакция
    Installing : php55-xml-5.5.11-1.el6.x86_64 1/1
    Verifying : php55-xml-5.5.11-1.el6.x86_64 1/1

    и след това се инсталира
    /usr/lib64/php/modules/simplexml.so

  3. 5

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.