PHP から自作の DLL ライブラリを呼び出す方法
PHPの拡張機能を使用して、自作のDLLライブラリを読み込み、呼び出すことができます。以下に簡単な例を示します。
- まず、コンパイルしたDLLファイルを C:\php\ext など、適切な場所に配置します。
- C:\php ディレクトリにある PHP 設定ファイル php.ini を開いて、次の 2 行のコメントを外してください。
- extension_dir = “ext” ; extension=php_[あなたのDLLの名前].dll
- extension_dir の値を DLL ファイルのあるパスに変更してください。例: extension_dir = “C:\php\ext”。extension の値を DLL ファイル名に変更してください。例: extension=php_mylib.dll。
- php.iniファイルを保存して終了する。
- ApacheなどのWebサーバ、またはPHPスクリプトをコマンドラインから実行している場合はコマンドラインウィンドウを再起動します。
- extension_loaded 関数を使用して PHP コードで DLL がロードされているかどうか確認します。
- extension_loaded(‘mylib’) !== TRUE であれば {
echo ‘DLL 未読込’;
exit;
} - dl 関数を使用して動的 DLL のロードを行う:
- if (!extension_loaded(‘mylib’)) {
if (strtoupper(substr(PHP_OS, 0, 3)) === ‘WIN’) {
dl(‘php_mylib.dll’);
} else {
dl(‘mylib.so’);
}
} - PHP 7.2 以降では、dl 関数が非推奨となって使用できません。これらのバージョンを使用する場合は、ffi 拡張機能を使用した DLL の呼び出しをお試しください。
- DLL の関数やメソッドを呼び出す
- $result = mylib_function($arg1, $arg2, …);
- ここで、mylib_functionはDLLで定義する関数、メソッド名で、$arg1, $arg2, …は関数、メソッドに渡す引数です。
DLLライブラリを自作して利用するには、C/C++プログラミングの知識と、PHPでの関数エクスポートと関数の呼び出し方の理解が必要になりますが、ここでは簡略化した例を紹介しており、実際の利用は環境や要件によって異なる場合があります。