PHP5 +가 필요한 플러그인 몇 개가 있습니다. SimpleXML을. SimpleXML은 XML 응답을 구문 분석하는 훨씬 쉽고 성능이 좋은 방법입니다. API에스. 하지만 문제는 사용자가 프로그램을로드 할 수없는 이유를 묻는 이메일을 하루 또는 일주일에 몇 개 받고 오류가 발생한다는 것입니다.
분명히 플러그인과 프로젝트 페이지에 대한 내 알림이 충분하지 않았기 때문에 올바른 작업을 수행하고 SimpleXML 확장이로드되었는지 확인하기 위해 두 플러그인에 기능을 추가했습니다.
SimpleXML 확장을 확인하는 PHP 함수가로드됩니다.
function isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ result = 거짓; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} return $ result; }
이제 SimpleXML을 사용하는 함수 내에서 실제로 SimpleXML 호출을 시도하기 전에로드되었는지 확인할 수 있습니다. 만약
if (! isSimpleXMLLoaded ()) {echo "다른 곳에서 사이트를 호스팅하세요!"; 반환; }
내 블로그를 주시하는 PHP 전문가가 있다는 것을 알고 있습니다. 어떻게했는지 알려주세요! 이 방법을 활용하기 위해 두 플러그인에 대한 사소한 업데이트를 릴리스했습니다.
하이 더그,
나는 아마도 오류를 일으키지 않는 하나의 버그를 발견했습니다.
if ($ value = "SimpleXML") {$ result = true; }
되어야
if ($ value ==“SimpleXML”) {$ result = true; }
안전을 위해. 나는 선호한다.
if (strtolower ($ value) ==“simplexml”) {$ result = true; }
확인할 확장 이름을 사용하는 'extension_loaded'를 사용할 수도 있습니다 (대소 문자 구분).
$ loaded = extension_loaded ( "SimpleXML");
TRUE 또는 FALSE를 반환합니다.
추신 : 커피를 직접 마시지 마십시오.하지만 '도넛 한 상자 구입'버튼을 넣을 수 있습니다 🙂
도넛 단추를 올려, 닉! 당신은 생명의 은인입니다! 재미있는 점은 (strtolower 제외) 실제로 샘플 코드를 실행하고 올바른 평가를 활용했다는 것입니다. 내가 넣을 때쯤 엉망이 돼서 늦었나 봐!
코드와 블로그 게시물을 수정했습니다. 질문 : 다른 것보다 하나의 장점이 있습니까? 나는 extension_loaded가 이것을 처리하는 훨씬 더 깨끗하고 빠른 방법이라고 생각한다!
감사합니다 Nick!
extension_loaded는 갈 길입니다.
yum은 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
감사합니다 조! 훌륭한 조언.