開發 PHP 擴充套件 DLL

2021-09-30 09:03:08 字數 1401 閱讀 3330

windows下開發php擴充套件網上很多資料都說需要cygwin,其實完全可以不必安裝該東東。沒錯,是可以在linux下生成骨架後拷到windos下來用,但是,如果沒有linux環境呢?什麼,裝虛擬機器?我暈,你咋又繞回去了- -! 除了編譯外,shell環境主要就是為了生成擴充套件的骨架,其實骨架已經在php原始碼包中了了,我們只需要把相關名字替換一下即可使用。

準備:1、php原始碼包和windows下的二進位製包,以及安裝visual c++,並把microsoft visual studio\common\msdev98\bin的絕對路徑新增到windows環境變數

2、解壓原始碼包到d:\php_src

3、進入d:\php_src\ext目錄,複製skeleton資料夾,並重命名為要開發擴充套件的名字,本例為「linvo」

4、把二進位製包中dev目錄下的php5ts.lib檔案,拷入新建的linvo目錄

5、編輯linvo目錄中的php_skeleton.h、skeleton.c、skeleton.dsp這三個檔案,替換內容中所有extname為linvo,extname為linvo。(嚴格區分大小寫)

編碼:6、編輯php_skeleton.**件(標頭檔案)

在php_function(confirm_linvo_compiled);下面編寫

php_function(hello);

宣告乙個hello函式

7、編輯skeleton.c檔案(主檔案)

在php_fe(confirm_linvo_compiled,        null) 下面編寫

php_fe(hello,        null)

這是函式入口,下面該寫函式主體了

找到php_function(confirm_test_compiled)函式,該函式是測試函式,在該函式後面新寫乙個函式

php_function(hello)

len = spprintf(&strg, 0, "hello,%s", arg);

return_stringl(strg, len, 0);

}複製**

編譯:8、執行cmd命令列,進入d:\php_src\ext\linvo目錄

9、輸入 msdev linvo.dsp /make "linvo - win32 release_ts"

10、如果沒有錯誤,則在php_src目錄下會生成乙個release_ts資料夾,裡面就是編譯好的php_linvo.dll擴充套件

使用:11、將其拷入執行環境中的php擴充套件目錄ext

12、編輯php.ini新增extension=php_linvo.dll,重啟apache

13、在php檔案中執行如下語句

echo hello('linvo');

將輸出hello,linvo

14、通過echo phpinfo();也可看到擴充套件已載入的資訊

開發php擴充套件

1.原始碼安裝php wget tar zxvf php 5.2.13.tar.gz cd php 5.2.13 configure prefix csdn verify auth php with config file path csdn verify auth php etc make zen...

開發php擴充套件

centos 6.8 1,安裝gcc yum y install gcc make autoconf 開啟eclipse file new c project 專案下有個重要的工具,php src ext ext skel 自動為我們建立擴充套件的指令碼 ext skel extname test ...

使用C語言來擴充套件PHP,寫PHP擴充套件dll

以前寫過一次php擴充套件dll,那個是利用呼叫系統的com口實現的擴充套件,與php不能真正融合。心血來潮,研究了一下php的原始碼,網上找了一些資料,自己嘗試寫了乙個擴充套件dll,測試沒問題。下面記錄一下具體擴充套件方法 3 把vc 6.0安裝目錄中的 microsoft visual stu...