IT/php

php dl — 런타임에 PHP 확장을로드합니다.

조원태 2017. 1. 22. 16:07
반응형

dl — 런타임에 PHP 확장을로드합니다.


설명 ¶


bool dl ( string $library )

매개 변수 라이브러리가 제공 한 PHP 확장을로드합니다.


Warning

이 함수는 PHP 5.3.0에서 대부분의 SAPI에서 제거되었으며 PHP 7.0.0에서 PHP-FPM에서 제거되었습니다.


인수 ¶


library


이 매개 변수는로드 할 확장 파일의 파일 이름이며 플랫폼에 따라 다릅니다. 예를 들어, 소켓 모듈 (공유 모듈로 컴파일 된 경우 기본값은 아닙니다!)은 유닉스 플랫폼에서는 sockets.so로, Windows 플랫폼에서는 php_sockets.dll이라고합니다.


확장 프로그램이로드되는 디렉토리는 플랫폼에 따라 다릅니다.


Windows - php.ini에 명시 적으로 설정되지 않은 경우 확장 프로그램은 기본적으로 C : \ php4 \ extensions \ (PHP 4) 또는 C : \ php5 \ (PHP 5)에서로드됩니다.


Unix - php.ini에 명시 적으로 설정되지 않은 경우 기본 확장 디렉토리는 다음에 따라 다릅니다.



PHP가 --enable-debug로 빌드되었는지 여부

PHP가 (실험적) ZTS (Zend Thread Safety) 지원으로 구축되었는지 여부

현재 내부 ZEND_MODULE_API_NO (젠드 내부 모듈 API 번호, 기본적으로 메이저 모듈 API 변경이 발생한 날짜입니다 (예 : 20010901)

위의 내용을 고려할 때 디렉토리의 기본값은 <install-dir> / lib / php / extensions / <debug-or-not> - <zts-or-not> -ZEND_MODULE_API_NO입니다. / usr / local / php / lib / php / extensions / debug-non-zts-20010901 또는 / usr / local / php / lib / php / extensions / no-debug-zts-20010901에 있습니다.



반환값 ¶

성공 시 TRUE를, 실패 시 FALSE를 반환합니다. If the functionality of loading modules is not available or has been disabled (either by setting enable_dl off or by enabling 안전 모드 in php.ini) an E_ERROR is emitted and execution is stopped. If dl() fails because the specified library couldn't be loaded, in addition to FALSE an E_WARNING message is emitted.




Example #1 dl() examples


<?php

// Example loading an extension based on OS

if (!extension_loaded('sqlite')) {

    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {

        dl('php_sqlite.dll');

    } else {

        dl('sqlite.so');

    }

}


// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0

if (!extension_loaded('sqlite')) {

    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';

    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);

}

?>

반응형