详解Window7 下开发php扩展


Posted in PHP onDecember 31, 2015

一、首先查看phpinfo() 信息

PHP Version 5.4.34
Zend Extension Build API220100525,TS,VC9
PHP Extension Build API20100525,TS,VC9
Thread Safety enable

线程安全,VC9编译,5.4.34版本

二、开发前准备工作

php 5.3-5.4 :Visual C++ 9.0(Visual Studio 2008)
安装Cygwin(下载地址:http://www.cygwin.com/),虚拟linux环境
php编译后的程序和编译前的源码(下载地址:http://windows.php.net/download/)
编译后的程序路径:php-5.4.45-Win32-VC9-x86\
编译前的源码路径:php-5.4.45-src\
下载php sdk文件,http://windows.php.net/downloads/php-sdk/

1、解压php-sdk-binary-tools-20110915.zip里面的文件,将bison.exe所在的bin目录添加的系统path

将php-5.4.45-Win32-VC9-x86\dev\php5ts.lib 复制到php-5.4.45-src\Release_TS\php5ts.lib
新建php-5.4.45-src\main\config.win32.h,内容如下:
#define SIZEOF_LONG 4
#define PHP_COMPILER_ID "VC9"
"VC9"对应VC9

2、找到php源码目录, php-5.4.45-src\ext\ext_skel_win32.php

/*
This script can be used on Win systems
) Make sure you have CygWin installed
) Adjust the $cygwin_path to match your installation
) Change the environment cariable PATHEXT to include .PHP
) run ext_skel --extname=...
the first time you run this script you will be asked to
associate it with a program. chooses the CLI version of php.
*/
$cygwin_path = 'D:\Program Files\cygwin\bin';

这里改成你的cygwin安装目录。

3、运行cmd,进入php源码目录, php-5.4.45-src\ext,运行命令php ext_skel_win32.php --extname=myphpexs

详解Window7 下开发php扩展

记得将php.exe 所在目录加入path,--extname=你的扩展名字,

若成功会再ext目录下生成myphpexs文件夹,内容如下

详解Window7 下开发php扩展

4、用vs2008 打开myphpexs.dsp, 解决方案配置改为Release,执行生成命令

顺利的话将生成php_myphpexs.dll文件,我的将php_myphpexs.dll生成再了php源码根目录的Release_TS文件夹中

5、将php_myphpexs.dll放到你php的扩展目录,再php.ini中加上extension=php_myphpexs.dll

6、新建php脚本文件test.php,内容如下

echo confirm_myphpexs_compiled('test');

7、运行测试文件,出现如下内容说明,成功了

Congratulations! You have successfully modified ext/myphpext/config.m4. Module 23 is now compiled into PHP.

8、confirm_myphpexs_compiled是建立扩展是自带的册数函数,在编辑你自己的扩展内容时,可以删除改函数

PHP 相关文章推荐
十天学会php(1)
Oct 09 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
php表单转换textarea换行符的方法
Sep 10 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
php出租房数据管理及搜索页面
May 23 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 #PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 #PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 #PHP
php实现微信公众号主动推送消息
Dec 31 #PHP
php创建桌面快捷方式实现方法
Dec 31 #PHP
开启PHP的伪静态模式
Dec 31 #PHP
thinkphp多层MVC用法分析
Dec 30 #PHP
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
jQuery动态添加
2016/04/07 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python操作Excel之xlsx文件
2017/03/24 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
python中的测试框架
2020/11/13 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
学生实习介绍信
2014/01/15 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
运动会加油稿100字
2014/09/19 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
毕业典礼致辞
2015/07/29 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
详解MySQL中的pid与socket
2021/06/15 MySQL
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android