PHP: SimpleXML é carregado?

Depositphotos 11843590 s

Existem alguns plug-ins que construí que requerem PHP5 + e SimpleXML. SimpleXML é um método muito mais fácil e de melhor desempenho para analisar respostas XML de APIs. O problema, porém, é que eu recebia alguns e-mails por dia ou semana perguntando por que o usuário não conseguia carregar o programa e isso resultava em erros.

Aparentemente, meus avisos nos plug-ins e nas páginas do projeto não foram suficientes, então fiz a coisa certa e adicionei funcionalidade a ambos os plug-ins para verificar se a extensão SimpleXML foi carregada.

Função PHP para verificar se a extensão SimpleXML está carregada:

função isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ resultado = falso; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} return $ result; }

Agora, dentro das funções que usam SimpleXML, posso simplesmente garantir que ele seja carregado antes de realmente tentar a chamada SimpleXML. E se

if (! isSimpleXMLLoaded ()) {echo "Hospede seu site em outro lugar!"; Retorna; }

Eu sei que tenho alguns gurus do PHP que ficam de olho no meu blog, me diga como eu fiz! Lancei pequenas atualizações para ambos os plug-ins para utilizar este método.

6 Comentários

  1. 1

    Oi Doug,

    Eu notei um bug que provavelmente não gera um erro.

    if ($valor = “SimpleXML”) { $resultado = true; }

    deveria estar

    if ($valor == “SimpleXML”) { $resultado = verdadeiro; }

    Embora por questões de segurança. Eu prefiro.

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

    Você também pode usar 'extension_loaded' que leva o nome da extensão para verificar (diferencia maiúsculas de minúsculas).

    $loaded = extension_loaded(“SimpleXML”);

    Retorna VERDADEIRO ou FALSO.

    PS Não bebo café, mas posso colocar um botão 'compre uma caixa de donuts' 🙂

    • 2

      Levanta esse botão de rosquinha, Nick! Você é um salva-vidas! O engraçado é que (menos o strtolower), eu realmente tinha meu código de exemplo rodando e utilizando a avaliação correta. Deve ter sido tarde porque quando eu coloquei, eu estraguei tudo!

      Eu modifiquei o código e a postagem do blog. Pergunta: Alguma vantagem de um sobre o outro? Eu acho que o extension_loaded é uma maneira muito mais limpa e rápida de lidar com isso!

      Obrigado Nick!

  2. 4

    yum instale php55-xml.x86_64 para instalar simpleXML para php 5.5.11

    Transação em execução
    Instalando: php55-xml-5.5.11-1.el6.x86_64 1/1
    Verificando: php55-xml-5.5.11-1.el6.x86_64 1/1

    e depois instalou
    /usr/lib64/php/modules/simplexml.so

  3. 5

O que você acha?

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.