介绍
小编给大家分享一下php中使用C语言写扩展的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
1,在php源码路径的ext文件夹下,新建一个extend_test.def文件,编辑文件内容为:
my_test_function字符串(string str, int n)
2,在当前目录执行
。/ext_skel——extname=extend_test——原型=extend_test.def
其中,extname是扩展的名,原型是刚创建的文件,也可以用全路径
3,在当前目录下会生成extend_test文件夹,编辑extend_test文件夹下的config.m4
去掉一下三行的dnl的注释
PHP_ARG_ENABLE (extend_test,是否启用extend_test支持, 确保评论对齐: [——enable-extend_test启用extend_test支持])
4,编辑extend_test文件夹下的extend_test。c文件
找到以下方法并修改
PHP_FUNCTION (my_test_function) { char * str=零; int命令行参数个数=ZEND_NUM_ARGS (); size_t str_len; zend_long n; char *结果; char * ptr; zend_long result_length; “如果(zend_parse_parameters(命令行参数个数TSRMLS_CC; sl",, str,, str_len,, n)==失败) 返回; result_length=str_len * n; 结果=(char *) emalloc (result_length + 1); ptr=结果; 而(n)) { memcpy(简称:str, str_len); ptr +=str_len; } * ptr=& # 39; \ 0 & # 39;; RETURN_STRINGL(因此,result_length); }
5,生成扩展:
在extend_test文件夹下,运行/home/php/bin/phpize(实际为phpize所在路径)
然后运行。/配置——with-php-config=/home/php/bin/php-config(实际为php-config所在路径)
6,编译安装
使安装
7,执行完后会显示扩展安装到了哪个路径下
然后修改php。ini增加扩展信息
扩展=extend_test.so
8日测试扩展是否可用
新建测试。php文件并将内容编辑为
& lt; php ? 回声my_test_function(& # 39;一个# 39;5);
保存后用php运行,显示出五星级表示扩展成功安装