C语言实现简单php自定义扩展
1、下载php源码
下载地址:http://cn2.php.net/get/php-5.6.29.tar.gz/from/this/mirror
传到/usr/local/src/下
上传命令:rz -ay php.tar.gz
解压:tar -zxvf php.tar.gz
上图是我的php源码目录
2、进入到ext目录:
在这里我们只实现一个简单的例子:写一个两个数求和的这么一个扩展
新建一个预定义文件:vim sum_module.def
内容如下:
int sum_module(int x, int y)
保存并退出
注:如果有多个扩展的话,每个一行,每行行尾不要加分号
3、使用ext_skel工具创建扩展主体架构
./ext_skel --extname=sum_module --proto=sum_module.def
这里解释一下:extname就是我们以后用到的扩展名,proto是我们刚才新建的那个预定义文件
执行完了ext_skel之后,会在ext目录下生成一个以扩展名为名字的文件夹
4、修改config.m4文件
将如下三行的注释标签"dnl"去掉,修改后如下所示:
PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,
Make sure that the comment is aligned:
[ --enable-myfunctions Enable myfunctions support])
保存退出
5、修改扩展原始文件sum_module.c
注:只有84、85、86这三行是我自己写的,其它的都是自动生成的。
84行:C语言的定义一个long型的变量
85行:c语言的求和
86行:ZEND API的返回语法
6、用已安装好的php去编译
7、configure
8、make
9、make install
10、打开php.ini把sum_module.so加进入,然后重启php-fpm:/etc/init.d/php-fpm restart
phpinfo查看已经有了这个扩展了。
11、php测试一下:
OK,没问题,结束!
参考:http://www.cunmou.com/phpbook/7.1.md
C语言实现简单php自定义扩展的更多相关文章
- Notepad++语言格式设置,自定义扩展名关联文件格式
简单粗暴--直接上图
- C语言之三字棋的简单实现及扩展
C语言之三字棋的简单实现及扩展 在我们学习完数组之后,我们完全可以利用数组相关知识来写一个微小型的游戏,比如说今天所说的--三子棋. 大纲: 文件组成 实现 完整代码展示 扩展 即: 一.文件 ...
- SharePoint 2013 自定义扩展菜单
在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式.SharePoint的各种功能菜单,像网站设置.Ribbo ...
- SharePoint 2013 自定义扩展菜单(二)
接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomA ...
- WCF自定义扩展,以实现aop!
引用地址:https://msdn.microsoft.com/zh-cn/magazine/cc163302.aspx 使用自定义行为扩展 WCF Aaron Skonnard 代码下载位置: S ...
- Jquery自定义扩展方法(二)--HTML日历控件
一.概述 研究了上节的Jquery自定义扩展方法,自己一直想做用jquery写一个小的插件,工作中也用到了用JQuery的日历插件,自己琢磨着去造个轮子--HTML5手机网页日历控件,废话不多说,先看 ...
- Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议(转载)
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...
- C语言,简单计算器【上】
由于工作需要最近在研究PHP扩展,无可避免的涉及到了C语言.从出了学校以后C语言在实际工作中还没有用到过,所以必须要先进行一点复习工作.个人认为对于熟悉一样东西说最好的方法是上手实践.于是便想起了当时 ...
- lombok自定义扩展实践
lombok是一款能够在java代码编译阶段改变代码的插件.比如生成setter和getter方法,生成log类变量等,能够简化一些特定的模版式代码.本文将以实现一个基于特定注解生成日志代码的方式,简 ...
随机推荐
- YARN资料收集
hdfs2的HA: http://www.cnblogs.com/meiyuanbao/p/hadoop2.html
- Xor && 线性基练习
#include <cstdio> #include <cstring> ; ; int cnt,Ans,b,x,n; inline int Max(int x,int y) ...
- linux命令:df
1.命令介绍: df用来检测磁盘空间占用情况. 2.命令格式: df [选项] 文件 3.命令参数: 必要参数: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K= ...
- iOS 企业包碰到的问题
在这里 就不讲 iOS 企业包 怎么申请了 网上链接很多 也简单 真找不到靠谱的, 就用这个链接 教程 http://www.cnblogs.com/xiaoc1314/p/5595312.html ...
- 获取iOS设备型号iphone ipad
#import <sys/sysctl.h> //获得设备型号 -(NSString *)getCurrentDeviceModel { int mib[2]; size_t len; c ...
- 【转】JavaScript之web通信
原文转自:http://cloudbbs.org/forum.php?mod=viewthread&tid=28773&page=1&extra=#pid180304 一.前言 ...
- ListView 的优化(原)
随着ListView的不断深入使用,对于其的优化是必不可免的一个过程,现把其常见的优化步骤分享下,一些粗浅见识... 优化分四步走: 第一,复用convertView对象,如果之前有条目对象,就复用, ...
- Something about Wake-sleep
DBN可以看做是n个RBM串联组成,是一个多层神经网络. 多层的好处是可以用较少的参数表示复杂的函数. 而一些传统的training算法如BP算法,处理多层网络时,效果就不是很理想.
- IO消息机制
同步阻塞 同步非阻塞 异步阻塞 异步非阻塞 同步是函数自身等待结果 异步可采用状态轮询/通知/回调 返回结果: 阻塞和非阻塞的关注点是在等待消息的时候 线程的状态 同步阻塞 线程挂起 逻辑上函数不马上 ...
- Rethink your own
0 声明 文中显式或隐式指出是摘抄的部分,仅代表原作者的观点. 该随笔的动机源自胡适先生的一句话的前半部分: 1 知识以及建立知识的过程有强弱.高大上土肥圆之分吗? 文章摘自传说中的1024:[真人轉 ...