详解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 相关文章推荐
解决MySQL中文输出变成问号的问题
Jun 05 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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
Zend公司全球首推PHP认证
2006/10/09 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP微信红包API接口
2015/12/05 PHP
Symfony核心类概述
2016/03/17 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
jQuery Tools tooltip使用说明
2012/07/14 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
vue mounted组件的使用
2018/06/18 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
Python pickle模块用法实例分析
2015/05/27 Python
Python字符编码判断方法分析
2016/07/01 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
西安众合通用.net笔试题
2013/03/18 面试题
关于礼仪的演讲稿
2014/01/04 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
个人银行贷款担保书
2014/04/01 职场文书
新闻发布会策划方案
2014/06/12 职场文书
教师个人学习总结
2015/02/11 职场文书
教师学期末个人总结
2015/02/13 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
Python提取PDF指定内容并生成新文件
2021/06/09 Python