要調用自己寫的 DLL 庫,可以使用 PHP 的擴展機制進行加載和調用。下面是一個簡單的示例:
首先,將編譯好的 DLL 文件放置在合適的位置,例如 C:\php\ext
目錄下。
打開 PHP 的配置文件 php.ini
(在 C:\php
目錄下),找到以下兩行代碼并取消注釋:
; extension_dir = "ext"
; extension=php_[your_dll_name].dll
將 extension_dir
的值改為 DLL 文件所在的路徑,如 extension_dir = "C:\php\ext"
,將 extension
的值改為 DLL 文件的名稱,如 extension=php_mylib.dll
。
保存并關閉 php.ini
文件。
重啟 Web 服務器(例如 Apache)或者命令行窗口(如果是通過命令行運行 PHP 腳本)。
在 PHP 代碼中使用 extension_loaded
函數來檢查 DLL 是否已經加載:
if (!extension_loaded('mylib')) {
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 中導出和調用函數。這里提供的是一個簡化的示例,具體實現可能因環境和需求而異。