php扩展的实例
php扩展的实例
刘纪君 发表于4年前
php扩展的实例
  • 发表于 4年前
  • 阅读 69
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

开发php已有两年之余,同时自己对c/c++,又有一定的了解,总想弄些属于自己的一些扩展,在看了鸟哥(Laruence)http://www.laruence.com/的关于php扩展的一些资料,自己终于要开始学习php的扩展,今天花了半个小时的时间完成了一个非常的简单的扩展函数:gongchang(string str),虽然里面有很多需要学习的知识,万事开头难,那就开始吧,记录自己的执行步骤:

1:在/home/LPHP/目录下面创建一个文件以skel结尾:gongchang.skel:

内容为:string gongchang(string str)

2:我下载的php源码是php5.3.24利用其目录下面的文件夹下面的ext_skel 进行扩展的处理,告诉php有个扩展:[root@lmlq ext]#./ext_skel --extname=gongchang --proto=/home/LPHP/gongchang.skel

运行之后会在ext目录下生成一个gongchang的目录里面的文件有:

总用量 32
-rw-r--r-- 1 root root 2130 5月   2 20:34 config.m4
-rw-r--r-- 1 root root  317 5月   2 20:34 config.w32
-rw-r--r-- 1 root root    9 5月   2 20:34 CREDITS
-rw-r--r-- 1 root root    0 5月   2 20:34 EXPERIMENTAL
-rw-r--r-- 1 root root 5617 5月   2 20:34 gongchang.c
-rw-r--r-- 1 root root  511 5月   2 20:34 gongchang.php
-rw-r--r-- 1 root root 2870 5月   2 20:34 php_gongchang.h
drwxr-xr-x 2 root root 4096 5月   2 20:34 tests

但是php5.3.24会报这样的错误,google一下说是php5.3源码的错误:

error: ‘PHP_FE_END’ undeclared here (not in a function)]

解决方式是:

sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/.c
sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c

就可以了。

3:需要修改config.m4 gongchang.c和gongchang.h

config.m4:

修改如下:

将这PHP_ARG_WITH 和 [ --with-gongchang 这两行行前面的dnl(表示的是注释的意思给去掉)

gongchang.c:

将:

注释掉用:

4:编译:

[root@lmlq gongchang]#/usr/local/php/bin/phpize

[root@lmlq gongchang]#./configure --with-php-config=/usr/local/php/bin/php-config

[root@lmlq gongchang]#make && make install

 

 

共有 人打赏支持
粉丝 30
博文 78
码字总数 59637
×
刘纪君
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: