先从简单入手,找点感受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 中
九、测试