windows下开发并编译PHP扩展的方法

2015-01-24信息快讯网

开发PHP扩展对于普通程序员来讲可能一直是一件很神秘的工作,其实,只要你对C语言熟悉,了解了开发PHP扩展的步骤和规则,开发PHP扩展也是一件很普通的工作。

现在就简单说一在WINDOWS下开发PHP扩展的步骤:
首先需要准备的软件有:
cygwin 安装路径e:\app\cygwin
visual studio C++ 6.0,
修改环境变量,把已经安装好的PHP路径设置为环境变量。在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录。方便一会儿使用php.exe。
PHP源代码,这里假设为e:\c_source_code\php-5.2.5

1、修改文件 “PHP源文件目录/ext/ext_skel_win32.php”,在这里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路径。$cygwin_path = 'e:\app\cygwin\bin';
把$cygwin_path修改为你实际安装cygwin的路径。
2、在源代码ext目录也就是e:\c_source_code\php-5.2.5\ext下,执行 php ext_skel_win32.php --extname=<EXT_NAME>,此时会在ext目录下生成<EXT_NAME>目录,这个目录就是我们将要进行PHP扩展开发的框架。比如你运行php.exe ext_skel_win32.php --extname=foo,会在ext目录下生成foo目录。
3、将php-root\dev\php5ts.lib拷贝至 “ext/<EXT_NAME>”中。比如你要开发的PHP扩展名为foo,那么就需要把php-root\dev\php5ts.lib拷贝到PHP源文件目录\ext\foo中。
4、修改foo.c内容,编写我们需要的C代码。
5、进入<EXT_NAME>目录,打开<EXT_NAME>.dsp。
设置VC6工程,
设置菜单“组建”->“移除工程配置”,选中“Win 32 Release_TS”,
设置菜单“工程”,选中“Win 32 Release_TS”
打开Tab“连接”,设置“输出文件名”中的目录,
[可选]打开Tab“C/C++”,增加“预处理器定义”“,COMPILE_DL_<EXT_NAME>”(注意全大写,默认加入的),取消预定义“LIBZEND_EXPORTS”(否则不可引入zend函数)。
6、设置好以后,进行编译,会生成一个dll文件,文件名是<EXT_NAME>.dll,比如在我们的例子中就为foo.dll
把foo.dll拷到e:\app\ext目录下,并在php.ini里加上一行extension=foo.dll,重启一下apache,查看phpinfo();,会发现我们的PHP扩展foo()已经加载进来,已经可以使用这个foo扩展了。
php数据库配置文件一般做法分享
php中配置文件操作 如config.php文件的读取修改等操作
php中CI操作多个数据库的代码
PHP5权威编程阅读学习笔记 附电子书下载
PHP中使用unset销毁变量并内存释放问题
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
PHP sprintf() 函数的应用(定义和用法)
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
php提示undefined index的几种解决方法
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
PHP中获取文件扩展名的N种方法小结
win2003服务器使用WPS的COM组件的一些问题解决方法
在WINDOWS中设置计划任务执行PHP文件的方法
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
PHP内核介绍及扩展开发指南―基础知识
linux下为php添加curl扩展的方法
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
WordPress判断用户是否登录的代码
用php的ob_start来生成静态页面的方法分析
PHP用GD库生成高质量的缩略图片
php GeoIP的使用教程
让PHP COOKIE立即生效,不用刷新就可以使用
通过JavaScript或PHP检测Android设备的代码
在MongoDB中模拟Auto Increment的php代码
php SQL Injection with MySQL
php批量缩放图片的代码[ini参数控制]
延长phpmyadmin登录时间的方法
php INI配置文件的解析实现分析
window+nginx+php环境配置 附配置搭配说明
PHPwind整合最土系统用户同步登录实现方法
Windows 下的 PHP-PEAR 安装方法
php更改目录及子目录下所有的文件后缀扩展名的代码
windows下升级PHP到5.3.3的过程及注意事项
windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
一个简单php扩展介绍与开发教程
PHP zlib扩展实现页面GZIP压缩输出
PHP 检查扩展库或函数是否可用的代码
php smarty函数扩展
©2014-2024 dbsqp.com