加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php扩展开发入门demo实例

发布时间:2022-06-26 17:50:25 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php扩展开发,结合简单demo实例形式分析了php扩展编写、编译生成与运行等相关操作步骤及注意事项,需要的朋友可以参考下。 本文实例讲述了php扩展开发,分享给大家供大家参考,具体如下: 一、进入php源码包,找到ext文件夹 cd /owndata/sof
  这篇文章主要介绍了php扩展开发,结合简单demo实例形式分析了php扩展编写、编译生成与运行等相关操作步骤及注意事项,需要的朋友可以参考下。
 
  本文实例讲述了php扩展开发,分享给大家供大家参考,具体如下:
 
  一、进入php源码包,找到ext文件夹
 
  cd /owndata/software/php-5.4.13/ext
 
  文件夹下放的都是php的相关扩展模块
 
  二、生成自己的扩展文件夹和相关文件
 
  php支持开发者开发自己的扩展,提供了ext_skel骨架,用来构建扩展基本文件
 
  ./ext_skel --extname=myext
 
  运行完成后,会在ext目录下生产一个myext扩展目录
 
  三、编写一个hello world简单测试扩展
 
  cd myext
 
  1.编辑myext目录下的config.m4文件
 
  dnl PHP_ARG_WITH(myext, for myext support,
 
  dnl Make sure that the comment is aligned:
 
  dnl [ --with-myext       Include myext support])
 
  将上面这段改成
 
  PHP_ARG_WITH(myext, for myext support,
 
  [ --with-myext       Include myext support])
 
  2.编辑php_myext.h文件
 
  修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled); 这里就是扩展函数声明部分,可以增加一
 
  PHP_FUNCTION(myext_helloworld);
 
  3.编辑myext.c文件在这个里面增加一行PHP_FE(myext_helloworld,  NULL)
 
  const zend_function_entry myext_functions[] = {
      PHP_FE(confirm_myext_compiled, NULL)      /* For testing, remove later. */
      PHP_FE(myext_helloworld, NULL)
      PHP_FE_END   /* Must be the last line in myext_functions[] */
  };
  最后在文件末尾加入myext_helloworld执行代码
 
  PHP_FUNCTION(myext_helloworld)
  {
      char *arg = NULL;
    int arg_len, len;
    char *strg;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
      return;
    }
    php_printf("my first ext,Hello World!n");
    RETRUN_TRUE;
  }
  四、编译php扩展
 
  在myext目录下运行phpize
 
  /usr/local/webserver/php/bin/phpize
 
  安装扩展
 
  ./configure --with-php-config=/usr/local/webserver/php/bin/php-config
 
  make && make install
 
  然后在php安装的目录下生产.so的文件
 
  /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/myext.so
 
  复制myext.so文件到php安装的扩展目录下
 
  cp myext.so /usr/local/webserver/php/ext/
 
  编辑php.ini文件加入一行扩展路径
 
  extension=/usr/local/webserver/php/ext/myext.so
 
  重启php-fpm
 
  service php restart
 
  查看php扩展是否安装进去了
 
  /usr/local/webserver/php/bin/php -m|grep myext
 
  确认成功后测试myext打印helloworld
 
  /usr/local/webserver/php/bin/php -r "myext_helloworld('test');"
 
  或者创建demo.php
 
  <?php
  echo myext_helloworld('test');
  ?>
  /usr/local/webserver/php/bin/php demo.php
 
  运行后输出
 
  my first ext,Hello World!
 
  自此扩展开发小demo就实现了。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读