linux上编辑php,在Linux下编辑php扩展

以下内容是本人学习过程中的笔记或者心得,如果有什么建议或者意见请在评论中提醒我,谢谢,这篇文章我会定期更新,由浅到深的分享我学PHP扩展历程

或者在学习中有什么问题欢迎交流

1.去PHP官网下载一个源码包,然后解压到某个目录

2.进入源码目录中的ext目录中

3.执行./ext_skel --extname=myext(这是扩展的名字) 生成扩展框架 [ps:如果ext_skel无法执行,请查看ext_skel文件是否有可执行权限]

4.编写扩展函数

a).我们打开myext.c文件,里面有一些函数,包括

PHP_FUNCTION(),这是编写扩展中函数逻辑的注册函数,每一个扩展函数对应一个PHP_FUNCTION(扩展函数名){}

下面四个函数是扩展的c文件中基本都有的,这些在PHP的整个生命周期中需要调用的,具体的请看:

PHP_MINIT_FUNCTION(),这个函数在该扩展被载入时调用

PHP_RINIT_FUNCTION(),PHP初始化执行脚本的基本环境,在文件请求到达后,文件编译前执行该函数,例如记录请求开始时间,结合请求结束时间,可以记录下处理请求所花费的时间

PHP_RSHUTDOWN_FUNCTION(),一般脚本执行结束(执行到末尾或者exit,die退出后)后调用该函数

PHP_MSHUTDOWN_FUNCTION(),SAPI生命周期结束后,一般注销一些持久化的资源

b).我们来编写一个自己的函数

在myext.c文件中添加

PHP_FUNCTION(myfunction){intx,y,z;int argc =ZEND_NUM_ARGS();if(zend_parse_parameters(argc TSRMLS_CC,"ll",&x,&y)==FAILURE)return;

z= x *y;

RETURN_LONG(z);

}

然后在myext.c文件中的zend_function_entry myext_functions里面添加PHP_FE(myfunction,NULL) 注意后面不带逗号或者分号,需要换行

将config.m4中下面代码前的dnl去掉

dnl PHP_ARG_WITH(myext, for myext support,

dnl [ --with-myext Include myext support])

在扩展目录下执行phpize命令生成扩展的配置工具

然后执行./configure && make && make install 编译和安装,成功后在PHP扩展目录中可以看到编译好的myext.so文件

然后在php.ini文件中添加extension=myext.so

重启一下服务,测试myfunction(4,5)的结果是否输出20

原文:http://www.cnblogs.com/xiaozong/p/4976812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值