Postoji nekoliko dodataka koje sam izradio i koji zahtijevaju PHP5 + i SimpleXML. SimpleXML je mnogo lakša i učinkovitija metoda raščlanjivanja XML odgovora iz APIs. Problem je, međutim, u tome što bih dnevno ili u tjednu dobivao nekoliko e-poruka s pitanjem zašto korisnik ne može učitati program, što je rezultiralo pogreškama.
Očito moje obavijesti na dodacima i na projektnim stranicama nisu bile dovoljne, pa sam učinio pravu stvar i dodao oba funkcionalnosti za provjeru učitavanja proširenja SimpleXML.
PHP funkcija za provjeru učitavanja proširenja SimpleXML:
funkcija jeSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ rezultat = netačno; foreach ($ niz kao $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} vratiti $ rezultat; }
Sada, unutar funkcija koje koriste SimpleXML, mogu jednostavno osigurati da je učitan prije nego što zapravo pokušam SimpleXML poziv. Ako
if (! isSimpleXMLLoaded ()) {echo "Hostirajte svoje mjesto negdje drugdje!"; povratak; }
Znam da imam neke PHP gurue koji prate moj blog, javi mi kako sam to učinio! Objavio sam manja ažuriranja oba dodatka kako bih iskoristio ovu metodu.
Bok Doug,
Primijetio sam jedan bug koji vjerojatno ne izaziva pogrešku.
if ($value = “SimpleXML”) { $result = true; }
bi trebao biti
if ($value == “SimpleXML”) { $result = true; }
Iako radi sigurnosti. Preferiram.
if (strtolower($value) == “simplexml”) { $result = true; }
Također možete koristiti 'extension_loaded' koji uzima naziv proširenja za provjeru (osjetljivo na velika i mala slova).
$loaded = extension_loaded(“SimpleXML”);
Vraća TRUE ili FALSE.
PS Nemoj sam piti kavu, ali mogu staviti gumb 'kupi mi kutiju krafni' 🙂
Podigni dugme za krafnu, Nick! Ti si spasitelj života! Ono što je smiješno je da sam (minus strtolower) zapravo pokrenuo svoj uzorak koda i koristio pravu evaluaciju. Mora da je bilo kasno jer kad sam ga stavio, zabrljao sam!
Izmijenio sam kod i post na blogu. Pitanje: Ima li prednosti jednog nad drugim? Pretpostavljam da je extension_loaded puno čišći i brži način rješavanja ovoga!
Hvala Nick!
extension_loaded je pravi način.
yum instalirajte php55-xml.x86_64 za instalaciju simpleXML-a za php 5.5.11
Izvršena transakcija
Instalacija: php55-xml-5.5.11-1.el6.x86_64 1/1
Provjera: php55-xml-5.5.11-1.el6.x86_64 1/1
a zatim je instaliran
/usr/lib64/php/modules/simplexml.so
Zašto jednostavno ne biste napravili "extension_loaded ('SimpleXML')"? http://php.net/manual/en/function.extension-loaded.php
Hvala Joe! Sjajan savjet.