日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

用ext_skel,实现一个PHP扩展,添加到PHP并调用

發(fā)布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用ext_skel,实现一个PHP扩展,添加到PHP并调用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://www.shinrun.com/PHP

一、開始之前

1. 系統(tǒng)環(huán)境:FreeBSD 8.2
2. AP環(huán)境:即已經(jīng)裝好的Apache2.2.17、PHP5.3.8環(huán)境
3. PHP源碼:下載穩(wěn)定版本源碼到當(dāng)前用戶的目錄,如,下載PHP 5.3.8到/usr/home/abc下。
4. 其它要求(如果你要編譯整個PHP):autoconf版本為2.13或2.59;

二、解壓php源碼包,閱讀README.EXT_SKEL

1. 將下載下來的PHP源碼包,解壓。
2. 進(jìn)入到源碼包,打開README.EXT_SKEL

如果,看到里面的詳細(xì)說明,如果你已領(lǐng)會,那么就不用往下看了,趕緊自己開始吧。

三、根據(jù)README所提供的信息創(chuàng)建預(yù)定義文件和擴(kuò)展的開發(fā)框架包

1. 在/usr/home/abc/下,新建一個phpext.skel文件(隨自己的需要定義)。

? ? ? 內(nèi)容如下:

1string getext(string str)

? ? ? 編輯后保存。

? ? ? 注意:后面沒有分號,這里只是我們自己提前將要定義的函數(shù)寫在了一個文件里,為之后給--proto傳參用,如果你熟練了這并不是必須步驟。

2. 進(jìn)入到PHP源碼包,即php-5.3.8/ext/內(nèi)。你能看到有兩個帶ext_前綴的文件ext_skel、ext_skel_win32.php。運行ext_skel創(chuàng)建擴(kuò)展的開發(fā)包,如下:

1localhost$ ./ext_skel --extname=phpext --proto=/usr/home/abc/phpext.skel

之后將在php-5.3.8/ext/內(nèi)生成文件夾名為phpext的擴(kuò)展默認(rèn)開發(fā)框架包,文件夾內(nèi)包含下面內(nèi)容:

四、修改phpext文件內(nèi),config.m4、php_phpext.h、phpext.c三個文件

1. 修改config.m4文件,如圖所示:

即,注釋掉PHP_ARG_WITH或PHP_ARG_ENABLE(根據(jù)實際情況二選一,第一種是指擴(kuò)展需第三方庫支持)。

2. 修改php_phpext.h文件,如圖所示:

即,注釋掉默認(rèn)聲明的PHP函數(shù),添加一個我們自己定義的PHP函數(shù)getext。

3. 修改phpext.c文件,如圖所示:


即,先將getext注冊到phpext_functions[]中,然后定義并實現(xiàn)getext函數(shù)。

另,生成的文件,也有php文件,可根據(jù)自己的需要進(jìn)行測試等。

五、配置、編譯、安裝phpext

1. 用phpize創(chuàng)建配置,在phpext下運行:

#?/usr/local/bin/phpize #./configure --with-php-config=/usr/local/bin/php-config#./configure

2. 編譯并安裝phpext擴(kuò)展到/usr/local/lib/php/內(nèi)

#?make#?make test#?make install clean

3. 如果一切正常,在/usr/local/lib/php/下對應(yīng)的文件夾內(nèi)將多出一個叫phpext.so的文件

此時擴(kuò)展已成功完成。

六、將擴(kuò)展加載到PHP的php.ini或extensions.ini中

1. 把找到php.ini或extensions.ini,在其中加入一行,類似下圖:

2. 重啟apache服務(wù)器。

七、創(chuàng)建phpinfo文件查看是否成功加載phpext擴(kuò)展

1. 在apache的WEB所指根目錄下創(chuàng)建php文件,輸出phpinfo信息,如:

<?php   
//info.php    phpinfo();   
?> 

瀏覽器訪問可看到phpext擴(kuò)展已成功加載。

2. 創(chuàng)建PHP測試程序并調(diào)用phpext中g(shù)etext函數(shù)

<?php   		
//test.php echo getext("This is a php extension");   
?> 

瀏覽器訪問可看到頁面輸出

總結(jié)

以上是生活随笔為你收集整理的用ext_skel,实现一个PHP扩展,添加到PHP并调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。