先從簡單入手,找點感受php
一、計劃編寫個函數相似(基本不可能會用上,練練沒辦法)vim
function htest($str) { return $str . '=='; }
二、準備好php安裝包,本文使用的php5.5.8函數
三、編寫原型文件 htestproto.def測試
string htest(string str)
四、進入php源碼包 ext目錄, 執行spa
./ext_skel --extname=htest --proto=htestproto.def
五、vim htest/config.m4, 去除10-12 行dnlcode
10 PHP_ARG_WITH(htest, for htest support, 11 Make sure that the comment is aligned: 12 [ --with-htest Include htest support])
六、vim htest/htest.c 實現函數 原型
PHP_FUNCTION(htest) { char *str = NULL; int argc = ZEND_NUM_ARGS(); int str_len; char *result; if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) return; str_len = spprintf(&result, 0, "%s==", str); RETURN_STRINGL(result, str_len, 0); }
七、編譯源碼
/usr/local/php/bin/phpize
string
./configure --with-php-config=/usr/local/php/bin/php-config
it
make & make install
八、拷貝htest.so 文件到 php安裝目錄 的extensions目錄
添加extension = htest.so 到php.ini 中
九、測試