PHP呼叫C語言擴充套件

2021-06-22 05:25:11 字數 1643 閱讀 2591

執行環境

ubuntu server 14.04+php5.5.9+apache2

操作步驟

sudo apt-get install php5-dev

2、解壓原始碼包到你的home目錄中,也可以你自己指定的目錄

tar -czvf php-5.5.12.tar.gz

3、根據以下的命令進行輸入,用過ubuntu的會知道命令什麼意思,這裡不解析

cd php-5.5.12/ext   

./ext_skel --extname=bank //bank是我將要做的銀行介面系統擴充套件,這時會生成乙個bank的目錄,注意,如果ext_skel用的是舊版本,這裡可能會出錯

cd bank

vim config.m4

//把第16和第18行的dnl這個注釋符號去掉,去掉後是下面的樣子

php_arg_enable(bank, whether to enable bank support,

dnl make sure that the comment is aligned:

[  --enable-bank           enable bank support])

4、執行phpize程式,這個命令不一定每個人的系統中都有,如果沒有請安裝。這個命令會在當前目錄生成一些檔案,如果執行完後你能在當前目錄下找到php_bank.h和bank.說明執行成功。

sudo apt-get install phpize  //當phpize沒有時要執行這個命令安裝

phpize

5、修改php_bank.h檔案

vim php_bank.h

//找到php_function(confirm_hello_compiled)在下面增加自己的函式

php_function(bank_con);

6、修改bank.c,找到php_fe(confirm_hello_compiled, null)增加自己的函式

vim bank.c

php_fe(confirm_bank_compiled,   null)           /* for testing, remove later. */

php_fe(bank_con, null)

在這個檔案的最後面增加呼叫的函式體

php_function(bank_con)

7、開始配置

./configure --with-php-config=/usr/bin/php-config    //注意php-config這個檔案是在安裝phpize時會產生的,如果沒有這個檔案是沒有辦法配置完成

make

make install

如果上面3個命令中有出錯的話,請從第3步開始重做吧。

8、修改php.ini讓他載入擴充套件

vim /etc/php5/apache2/php.ini

extension=bank.so

9、重啟apache,然後在phpinfo中就可以看到bank這個擴充套件的了。

php呼叫c 程式實現php功能擴充套件

今天需要乙個php寫乙個對ip進行加解密的演算法,其中需要用到將ip轉化為數字並對64位數字進行運算,網上找了一圈沒找到,故打算用c 實現功能,通過php來呼叫,功能最終實現1.php部分 通過system呼叫外部程式並進行引數傳遞 allip for i 0 i count json i coun...

c 寫php擴充套件,如何用C語言編寫PHP擴充套件的詳解

1 預定義 在home目錄,也可以其他任意目錄,寫乙個檔案,例如caleng module.def 內容是你希望定義的函式名以及引數 int a int x,int y string b string str,int n 2 到php原始碼目錄的ext目錄 cd usr local php 5.4....

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

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