教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php中如何使用C语言写扩展

php中如何使用C语言写扩展

发布时间:2021-01-13   编辑:jiaochengji.com
教程集为您提供php中如何使用C语言写扩展等资源,欢迎您收藏本站,我们将为您提供最新的php中如何使用C语言写扩展资源
本篇文章给大家带来的内容是介绍如何使用C语言给PHP写扩展,,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、在php源码路径的ext文件夹下,新建一个extend_test.def文件,编辑文件内容为:

string my_test_function(string str,int n)

2、在当前目录执行

./ext_skel --extname=extend_test --proto=extend_test.def

其中,extname是扩展的名,proto是刚创建的文件,也可以用全路径

3、在当前目录下会生成extend_test文件夹,编辑extend_test文件夹下的config.m4

去掉一下三行的dnl的注释

PHP_ARG_ENABLE(extend_test, whether to enable extend_test support, Make sure that the comment is aligned: [  --enable-extend_test           Enable extend_test support])

4、编辑extend_test文件夹下的extend_test.c文件

找到以下方法并修改

PHP_FUNCTION(my_test_function) {     char *str = NULL;     int argc = ZEND_NUM_ARGS();     size_t str_len;     zend_long n;     char *result;     char *ptr;     zend_long result_length;     if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)         return;     result_length = str_len * n;     result = (char *) emalloc(result_length   1);     ptr = result;     while (n--) {         memcpy(ptr, str, str_len);         ptr  = str_len;     }     *ptr = '\0';      RETURN_STRINGL(result, result_length); }

5、生成扩展:

在extend_test文件夹下,运行/home/php/bin/phpize(实际为phpize所在路径)

然后运行./configure --with-php-config=/home/php/bin/php-config(实际为php-config所在路径)

6、编译安装

make              make install

7、执行完后会显示扩展安装到了哪个路径下

然后修改php.ini增加扩展信息

extension=extend_test.so

8、测试扩展是否可用

新建test.php文件并将内容编辑为

<?php echo my_test_function('a',5);

保存后用php运行,显示出aaaaa表示扩展成功安装

相关视频教程推荐:《PHP教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注教程集相关教程栏目!!!

以上就是php中如何使用C语言写扩展的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:博客园,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    php中如何使用C语言写扩展
    php和c能混编么
    php需要c语言的支持吗
    Python是一门怎样的编程语言
    php除了网站能做什么
    PHP如何实现多语言
    python语言是由哪个人创造的
    python和c 的区别
    php单线程的缺点是什么?
    php和asp.net哪个好

    [关闭]
    ~ ~