library で指定された PHP 拡張モジュールを ロードします。 library に指定できるのは拡張モジュールの ファイル名だけであり、それはプラットフォームに 依存します。例えば、Unix プラットフォームでは sockets 拡張モジュール (共有モジュールとしてコンパイルされていれば。デフォルトでは有りません!) は sockets.so と呼ばれていますし、一方 Windows プラットフォームでは php_sockets.dll と呼ばれます。
成功した場合に TRUE を、失敗した場合に FALSE を返します。 拡張モジュールのロード機能が無効(注意書き参照)だったり、あるいは 無効化されている(enable_dl でオフにされているか または php.ini で セーフモード が有効になっている)場合は、 E_ERROR を発行して実行は停止されます。 指定されたライブラリをロードできず dl() が 失敗した場合、FALSE に加えて E_WARNING メッセージが 発行されます。
extension_loaded() で、指定された拡張モジュールが 既に有効かどうか調べることができます。ビルトインの拡張モジュールと 動的なものと両方を調べることができます(php.ini で指定されたものも dl() でロードされたものも)。
dl() 関数は、PHP 5 では非推奨です。 Extension Loading Directives メソッドをかわりに利用してください。
拡張モジュールがロードされるディレクトリはプラットフォームによって 違います:
Windows - php.ini に明記されていない場合、デフォルトでは 拡張モジュールは c:\php4\extensions\ から ロードされます。
Unix - php.ini に明記されていない場合、デフォルトでは 以下に依存します。
PHP をビルドする際に --enable-debug を指定しているか否か
PHP をビルドする際に(実験段階の)ZTS (Zend Thread Safety)サポートを 有効にしているか否か
現在の ZEND_MODULE_API_NO(Zend 内部モジュール API 番号。基本的にはメジャーモジュール API の変更が発生した日時。 例:20010901)
注意: dl() はマルチスレッド Web サーバ上では サポートされません。 そのような環境の場合には php.ini 上で extensions 命令を使用するようにしてください。しかし、CGI や CLI には 影響しません!
注意: dl() は Unix プラットフォーム上では 大文字小文字を区別します。
注意: この関数は、safe-mode では無効となります。
Extension Loading Directives extension_loaded() も参照してください。