2011-01-14 1 views
0

phpinfo()를 확인하면 /usr/local/php4/lib/php.ini가 표시됩니다.PHP4는 DOMDocument를 지원합니까? 내 코드가 그렇다고 말 했나요?

즉, PHP4를 의미합니까?

하지만 아래 코드 줄을 실행하면 PHP5가 반환됩니다. WTF? 나는 PHP4에 DOMDocument 클래스가 없다고 생각했다. PHP4를 테스트해야하고 해결 방법을 취해야하지만,이 특정 테스트는 저를 혼란스럽게합니다. 스크립트에서 PHP4를 확인하는 또 다른 확실한 방법이 있습니까?

if (is_admin() && class_exists('DOMDocument')) { 
    echo "PHP5"; 
} else { 
    echo "Awe PHP4"; 
} 
+0

그런 다음'if (PHP_VERSION <5)'를 사용해보십시오. PHP4.4의 DomDocument는 아마도 http://de.php.net/manual/en/book.domxml.php입니다. – mario

+0

DOMDocument는 PHP4에는 존재하지 않지만 _but_ PHP4에서는'class DOMDocument {}'를 사용할 수 있습니다. 검사가 실패합니다. – mfonda

+0

@mario> 빙고 !!! PHP_VERSION은 4.49를 반환하므로 테스트가 티켓입니다. 감사! –

답변

2

PHP 버전은 phpinfo() 출력 바로 위에 나열됩니다. phpversion() 또는 CLI에서 php -v을 반향 출력하여이를 판별 할 수도 있습니다.

이외에도, PHP4는 DOMDocument을 지원하지 않습니다 (적어도 참조하고있는 것은 아닙니다). old DOM XML extension에는 유사한 명명 된 클래스가 있습니다.

는 다음과 같은 시도 :

echo extension_loaded('domxml') ? 'old' : 'new'; 
+0

DOMDocument 클래스를 지원하는 버전 4.4.9이므로 안정적인 테스트가 아니 었습니다. if (PHP_VERSION <5)가 훨씬 좋습니다. 감사! –

+0

@Scott DOM의 DOMDocument 클래스를 지원하지 않습니다. DOM XML의 DOMDocument 클래스를 지원합니다. 그것은 차이입니다. API는 동일하지 않습니다. 'extension_loaded' 두 가지 중 어느 것을 체크할까요? – Gordon

0

phpinfo()에서 PHP 버전을 확인하는 가장 좋은 방법은 맨 위의 헤더를 읽는 것이지만 PHP 코드를 검사 할 때는를 확인하십시오 10 방법입니다. 미리 정의 된 상수 인 PHP_VERSION도 있습니다.

0

은 phpinfo 당신이 실행 말한다면 그럼 PHP5 실행중인 PHP5를. php_info로 가정하면 phpinfo를 의미합니다.

당신이 기능 phpversion

당신이 언급하는 경로를 확인하고 싶어 할 수있다 아무것도 할 수 단지 구성 설정 파일입니다.

아마도 오래 전에 업데이트하고 보관했을 것입니다.

관련 문제