Ёсць некалькі убудоў, якія я стварыў, якія патрабуюць PHP5 + і SimpleXML. SimpleXML - гэта нашмат прасцейшы і эфектыўнейшы спосаб разбору адказаў XML APIс. Праблема заключаецца ў тым, што я атрымліваю некалькі лістоў у дзень ці тыдзень з пытаннем, чаму карыстальнік не можа загрузіць праграму, і гэта прыводзіць да памылак.
Мабыць, маіх заўваг на ўбудовах і на старонках праекта было недастаткова, таму я зрабіў правільна і дадаў функцыянальнасць абодвум убудовам для праверкі загрузкі пашырэння SimpleXML.
Функцыя PHP для праверкі загружанага пашырэння SimpleXML:
функцыя isSimpleXMLLoaded () {$ array = array (); $ масіў = get_loaded_extensions (); $ вынік = ілжывы; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} вярнуць $ вынік; }
Цяпер, унутры функцый, якія выкарыстоўваюць SimpleXML, я магу проста пераканацца, што ён загружаны, перш чым паспрабаваць выклік SimpleXML. Калі
if (! isSimpleXMLLoaded ()) {echo "Размясціць ваш сайт дзе-небудзь яшчэ!"; вяртанне; }
Я ведаю, што ў мяне ёсць некалькі гуру PHP, якія сочаць за маім блогам, дайце мне ведаць, як я гэта зрабіў! Я выпусціў нязначныя абнаўленні абодвух убудоў, каб выкарыстаць гэты метад.
Прывітанне Дуг,
Я заўважыў адну памылку, якая, верагодна, не выклікае памылкі.
калі ($ значэнне = "SimpleXML") {$ вынік = праўда; }
павінна быць
if ($ value == “SimpleXML”) {$ result = true; }
Хоць дзеля бяспекі. Я аддаю перавагу.
if (strtolower ($ value) == “simplexml”) {$ result = true; }
Вы таксама можаце выкарыстоўваць 'extension_loaded', які прымае імя пашырэння для праверкі (з улікам рэгістра).
$ загружана = пашырэнне_загружана ("SimpleXML");
Вяртае TRUE альбо FALSE.
PS Не піце каву сам, але я магу паставіць кнопку "купі мне скрынку пончыкаў" 🙂
Дастань гэтую кнопку з пампушкамі, Нік! Вы выратавальнік жыцця! Самае смешнае, што (за вылікам strtolower), у мяне сапраўды быў запушчаны ўзор кода і выкарыстана правільная ацэнка. Напэўна, было позна, бо да таго часу, калі я ўклаў яго, я сапсаваў яго!
Я змяніў код і паведамленне ў блогу. Пытанне: ёсць перавага аднаго над другім? Мяркую, extension_loaded - нашмат больш чысты і хуткі спосаб барацьбы з гэтым!
Дзякуй Ніку!
extension_loaded - гэта шлях.
ням усталюйце 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
Дзякуй Джо! Выдатная парада.