当前位置: 首页 > article >正文

第一个php扩展开发的demo

cd /root/soft/php/php-5.2.6/ext
./ext_skel --extname=heiyeluren
cd /root/soft/php/php-5.2.6/ext/heiyeluren
vi config.m4
打开文件后去掉 dnl ,获得下面的信息:
PHP_ARG_ENABLE(rot13, whether to enable heiyeluren support,
[  --enable-heiyeluren           Enable heiyeluren support])
保存退出.

vim php_rot13.h 

找到:PHP_FUNCTION(confirm_ rot13_compiled); ,新增一行:

PHP_FUNCTION(rot13_test); 

vim rot13.c

数组里增加我们的函数,找到 zend_function_entry rot13_functions[],增加:

PHP_FE(rot13_test, NULL)

再到 rot13.c 文件最后面增加如下代码:
PHP_FUNCTION(heiyeluren_test)
{
    char *arg = NULL;
    int arg_len, len;
    char *strg;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
        return;
    }

    len = spprintf(&strg, 0, "Your input string: %s/n", arg);
    RETURN_STRINGL(strg, len, 0);
}
保存退出。

编译安装

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make test
sudo make install

sudo cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/rot13.so rot13.so

检查安装结果

php -m

http://blog.csdn.net/heiyeshuwu/article/details/3453854


http://www.kler.cn/a/149604.html

相关文章:

  • ArkTs简单入门案例:简单的图片切换应用界面
  • CentOS 服务
  • Springboot 日志处理(非常详细)
  • Ubuntu安装MySQL8
  • 使用Matlab建立随机森林
  • 笔记 | image may have poor performance,or fail,if run via emulation
  • 模拟实现offsetof宏(详解)
  • 第三方发起备份的ORA-00245问题
  • vue实现动态路由菜单!!!
  • 19. Python 数据处理之 Pandas
  • 奇葩问题:arp缓存与ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)
  • ssh管理
  • Android12强制所有应用跟随gsensor旋转
  • 23.解释不同方式的自动装配,spring 自动装配 bean 有哪些方式?
  • 【带头学C++】----- 八、C++面向对象编程 ---- 8.10 函数的默认参数
  • Python基础语法之学习字符串快速格式化
  • C\C++:原子计数操作 之__syn_fetch_and_add性能研究
  • 前后端分离开发出现的跨域问题
  • 压缩字符串II
  • Maven 介绍
  • C语言基础程序设计题
  • 爬虫如何确定HTTP代理IP是否符合自己业务需求?
  • Android 13.0 app进程保活白名单功能实现
  • Python语言学习笔记之二(基础语法)
  • leetcode 611. 有效三角形的个数(优质解法)
  • 去水印软件有哪些?亲测四款好用去水印神器