假設需求
開發乙個叫做 helloword 的擴充套件。
擴充套件裡有乙個函式,helloword()。
echo helloword('tom');本地環境php版本:5.6.9//返回:hello world: tom
系統:linux centos release 6.5 (final)
最終效果
實現流程
第一步:
進入到本地的php目錄執行:
cd /root/soft/src/php-5.6.9如圖:cd ext
./ext_skel --extname=helloword
cd helloword
vi config.m4
搜尋:dnl otherwise use enable 將下面修改成:
php_arg_enable(helloworld, whether to enable helloworld support,
[ --enable-helloworld enable helloworld support])
if test "$php_helloworld" != "no"; then
...
第二步:
vi php_helloworld.h如圖:搜尋:extern zend_module_entry 新增一行:
php_function(helloworld);
第三步:
vi helloworld.c如圖:搜尋:const zend_function_entry helloworld_functions 新增一行:
php_fe(helloworld, null)
在 helloworld.c 底部新增乙個方法如圖:php_function(helloworld)
len = spprintf(&strg, 0, "hello world: %s", arg);
return_stringl(strg, len, 0);
}
第四步:
//編譯安裝第五步:cd /root/soft/src/php-5.6.9/ext
/usr/local/php/bin/phpize #用phpize生成configure配置檔案
./configure --with-php-config=/usr/local/php/bin/php-config #配置
make #編譯
make install #安裝
//修改php.ini第六步:extension="helloworld.so" #名稱為安裝擴充套件的名稱
重啟環境。
完成上面的步驟,簡單的 helloworld 擴充套件就ok了。
大家可以根據自己的需求,開發滿足自己的擴充套件。
比如,可以開發一些擴充套件類,擴充套件方法,等等。
Linux下編寫php擴充套件
linux下編寫php擴充套件 1 所需 phpize 如果一開始是使用原始碼編譯裡面就有 php原始碼 2 到原始碼目錄下ext目錄裡面,執行.ext skel extname myext 3 生成擴充套件框架後,需要進入裡面修改m4檔案,php arg enable myext,whether ...
在Linux下編寫php擴充套件
或者在學習中有什麼問題歡迎交流 2.進入原始碼目錄中的ext目錄中 3.執行.ext skel extname myext 這是擴充套件的名字 生成擴充套件框架 ps 如果ext skel無法執行,請檢視ext skel檔案是否有可執行許可權 4.編寫擴充套件函式 a 我們開啟myext.c檔案,裡...
如何編寫乙個PHP的C擴充套件
c是靜態編譯的,執行效率比php 高很多。同樣的運算 使用c來開發,效能會比php要提公升數百倍。io操作如curl,因為耗時主要在iowait上,c擴充套件沒有明顯優勢。另外c擴充套件是在程序啟動時載入的,php 只能操作request生命週期的資料,c擴充套件可操作的範圍更廣。ext skel是...