php扩展开发入门demo示例
本文实例讲述了php扩展开发。分享给大家供大家参考,具体如下:
一、进入php源码包,找到ext文件夹
cd/owndata/software/php-5.4.13/ext
文件夹下放的都是php的相关扩展模块
二、生成自己的扩展文件夹和相关文件
php支持开发者开发自己的扩展,提供了ext_skel骨架,用来构建扩展基本文件
./ext_skel--extname=myext
运行完成后,会在ext目录下生产一个myext扩展目录
三、编写一个helloworld简单测试扩展
cdmyext
1.编辑myext目录下的config.m4文件
dnlPHP_ARG_WITH(myext,formyextsupport, dnlMakesurethatthecommentisaligned: dnl[--with-myextIncludemyextsupport])
将上面这段改成
PHP_ARG_WITH(myext,formyextsupport, [--with-myextIncludemyextsupport])
2.编辑php_myext.h文件
修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled);这里就是扩展函数声明部分,可以增加一
PHP_FUNCTION(myext_helloworld);
3.编辑myext.c文件在这个里面增加一行PHP_FE(myext_helloworld, NULL)
constzend_function_entrymyext_functions[]={ PHP_FE(confirm_myext_compiled,NULL)/*Fortesting,removelater.*/ PHP_FE(myext_helloworld,NULL) PHP_FE_END/*Mustbethelastlineinmyext_functions[]*/ };
最后在文件末尾加入myext_helloworld执行代码
PHP_FUNCTION(myext_helloworld) { char*arg=NULL; intarg_len,len; char*strg; if(zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC,"s",&arg,&arg_len)==FAILURE){ return; } php_printf("myfirstext,HelloWorld!\n"); RETRUN_TRUE; }
四、编译php扩展
在myext目录下运行phpize
/usr/local/webserver/php/bin/phpize
安装扩展
./configure--with-php-config=/usr/local/webserver/php/bin/php-config make&&makeinstall
然后在php安装的目录下生产.so的文件
/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/myext.so
复制myext.so文件到php安装的扩展目录下
cpmyext.so/usr/local/webserver/php/ext/
编辑php.ini文件加入一行扩展路径
extension=/usr/local/webserver/php/ext/myext.so
重启php-fpm
servicephprestart
查看php扩展是否安装进去了
/usr/local/webserver/php/bin/php-m|grepmyext
确认成功后测试myext打印helloworld
/usr/local/webserver/php/bin/php-r"myext_helloworld('test');"
或者创建demo.php
/usr/local/webserver/php/bin/phpdemo.php
运行后输出
myfirstext,HelloWorld!
自此扩展开发小demo就实现了
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《PHP网络编程技巧总结》、《phpcurl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php字符串(string)用法总结》
希望本文所述对大家PHP程序设计有所帮助。