我構建了幾個需要PHP5 +和 SimpleXML的。 SimpleXML是一種解析來自以下位置的XML響應的更簡單,性能更好的方法: APIs。 但是,問題在於,我每天或每週都會收到幾封電子郵件,問我為什麼用戶無法加載程序並導致錯誤。
顯然,我對插件和項目頁面的注意還不夠,所以我做了正確的事,並向兩個插件添加了功能以驗證是否已加載SimpleXML擴展。
用於檢查是否已加載SimpleXML擴展的PHP函數:
函數isSimpleXMLLoaded(){$ array = array(); $ array = get_loaded_extensions(); $ result = false; foreach($ array as $ i => $ value){if(strtolower($ value)==“ simplexml”){$ result = true; 返回$結果; }
現在,在使用SimpleXML的函數中,我可以簡單地確保在實際嘗試SimpleXML調用之前就已加載它。 如果
如果(!isSimpleXMLLoaded()){echo“將您的網站託管在其他地方!”; 返回; }
我知道我有一些PHP專家來關注我的博客,讓我知道我的工作方式! 我已經發布了兩個插件的次要更新,以利用此方法。
你好道格,
我確實注意到一個可能不會引發錯誤的錯誤。
if($ value =“ SimpleXML”){$ result = true; }
應該
if($ value ==“ SimpleXML”){$ result = true; }
雖然出於安全考慮。 我更喜歡。
如果(strtolower($ value)==“ simplexml”){$ result = true; }
您也可以使用'extension_loaded',它使用擴展名進行檢查(區分大小寫)。
$ loaded = extension_loaded(“ SimpleXML”);
返回TRUE或FALSE。
PS我自己不要喝咖啡,但我可以放一個“給我買一盒甜甜圈”按鈕button
尼克,把那個甜甜圈扣起來! 你是救命稻草! 有趣的是(減去strtolower),我確實確實運行了示例代碼並利用了正確的評估。 一定已經晚了,因為當我放進去時,我搞砸了!
我已經修改了代碼和博客文章。 問題:一個相對於另一個有什麼優勢嗎? 我想extension_loaded是一種更清潔,更快捷的處理方式!
謝謝尼克!
extension_loaded是必經之路。
yum install php55-xml.x86_64為php 5.5.11安裝simpleXML
運行交易
安裝: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
謝謝喬! 很好的建議。