php中使用C语言写扩展的方法

  介绍

小编给大家分享一下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运行,显示出五星级表示扩展成功安装

php中使用C语言写扩展的方法