• 欢迎访问IT乐园(o゚▽゚)o
  • 推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。

用c++为php编写扩展

php fhy 2年前 (2017-03-13) 746次浏览 0个评论
文章目录[隐藏]

用 c/c++为 php 编写动态链接库

准备工作:

  1. 下载 PHP 源码 http://www.php.net/downloads
    由于博主的 php 版本为 5.4 比较老测试扩展时出现各种问题,故这里编译安装目前最新版 php-7.1.0.tar.gz
  2. 解压后,源码放到 /root/source/php-7.1.0
  3. 安装目录:/usr/local/php7
  4. 开始安装,配置 /usr/local/php7/etc/php.ini 的路径,方便以后进行个性化配置
  5. 扩展名称:fhy
  6. 扩展函数:fhy_say(),这个函数只返回一个”Hello world!” 字符串
  7. 扩展可运行在 win32 系统,也运行在类 unix 系统,但是需要编译不同的文件,这里只介绍 GNU/Linux 下的操作。

开始编写扩展:

  1. 创建要实现的函数列表文件 /root/source/fhy.proto 内容如下:
    使用 ext_skel 脚本加入 --proto=/root/source/fhy.proto 参数可直接构建所需函数

  1. 使用扩展骨架工具生成核心文件,命令如下:

这时就在 ext 目录下出现了 fhy 文件夹,里面包含几个文件,如:config.m4 fhy.c php_fhy.h 等等。
3. 修改 config.m4 文件,内容如下:

这个文件中 dnl 是注释符,其之后的字串是解释上下文。

修改 fhy.c 文件重名为 fhy.cpp(用 c++嘛所以改成 cpp 了)

4.1. 加入需要的 C++ string 头文件,如下:

4.2. 修改 fhy_say 函数,如下:

  1. 编译扩展(动态编译)

5.1. make

生成的扩展文件:

fhy.so 放到 php 扩展目录 /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
php.ini 引入扩展文件

测试扩展


IT 乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用 c++为 php 编写扩展
喜欢 (0)
关于作者:
九零后挨踢男
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址