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()でロードされたものも)
The directory where the extension is loaded from depends on your platform: 拡張モジュールがロードされるディレクトリはプラットフォームによって 違います:
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プラットフォーム上では 大文字小文字を区別します。