Hi ha un parell de connectors que he construït que requereixen PHP5 + i SimpleXML. SimpleXML és un mètode d’anàlisi de respostes XML molt més senzill i amb un millor rendiment Programess. El problema, però, és que rebria uns quants correus electrònics al dia o a la setmana preguntant-me per què l’usuari no podia carregar el programa i donava lloc a errors.
Pel que sembla, els meus avisos als connectors i a les pàgines del projecte no eren suficients, així que vaig fer el correcte i vaig afegir funcionalitat als dos connectors per verificar que l’extensió SimpleXML estigui carregada.
Funció PHP per comprovar que l'extensió SimpleXML està carregada:
funció isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ resultat = fals; foreach ($ array com a $ i => $ valor) {if (strtolower ($ value) == "simplexml") {$ result = true; }} retorna $ resultat; }
Ara, dins de les funcions que utilitzen SimpleXML, només puc assegurar-me que es carregui abans de provar la trucada SimpleXML. Si
if (! isSimpleXMLLoaded ()) {echo "Allotgeu el vostre lloc en un altre lloc!"; tornar; }
Sé que tinc alguns gurus de PHP que mantenen un ull al meu bloc, feu-me saber com ho vaig fer. He publicat actualitzacions menors als dos connectors per utilitzar aquest mètode.
Hola Doug,
Vaig notar un error que probablement no genera cap error.
if ($valor = “SimpleXML”) { $resultat = cert; }
ha de ser
if ($valor == “SimpleXML”) { $resultat = cert; }
Encara que per seguretat. Prefereixo.
if (strtolower($valor) == “simplexml”) { $resultat = cert; }
També podeu utilitzar "extension_loaded" que pren el nom de l'extensió per comprovar (distingeix entre majúscules i minúscules).
$carregat = extension_loaded ("SimpleXML");
Retorna TRUE o FALSE.
PD No prengui cafè jo mateix, però potser posaré el botó "compra'm una caixa de bunyols" 🙂
Aixeca el botó del donut, Nick! Ets un salvavides! El que és curiós és que (menys el strtolower), en realitat tenia el meu codi de mostra en execució i utilitzant l'avaluació adequada. Devia ser tard perquè quan el vaig posar ja ho vaig fer malbé!
He modificat el codi i la publicació del blog. Pregunta: Algun avantatge d'un sobre l'altre? Suposo que extension_loaded és una manera molt més neta i ràpida de fer-ho!
Gràcies Nick!
extension_loaded és el camí a seguir.
yum instal·leu php55-xml.x86_64 per instal·lar simpleXML per a PHP 5.5.11
Transacció en execució
Instal·lació: php55-xml-5.5.11-1.el6.x86_64 1/1
Verificació: php55-xml-5.5.11-1.el6.x86_64 1/1
i després es va instal·lar
/usr/lib64/php/modules/simplexml.so
Per què no faries simplement "extension_loaded ('SimpleXML')"? http://php.net/manual/en/function.extension-loaded.php
Gràcies Joe! Gran consell.