2006-11-23 bailing
F:\www\php-src\ext>msdev uploadprogress\uploadprogress.dsp /MAKE "uploadprogress - Win32 Release_TS" msdev aaa\aaa.dsp /MAKE "aaa - Win32 Release_TS" msdev ffmpeg-php\ffmpeg-php.dsp /MAKE "ffmpeg-php - Win32 Release_TS" /* * 版权归PHPSalon.com所有,未经许可,严禁任何形式转载 * * Author: Wenlong Wu */ 一、准备工作: 开发环境:要编译 PHP 你需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0,当然 Microsoft Visuaul C++.NET也可以。 其他工具:如果使用自动生成 PHP 扩展代码的话,还需要 Cygwin 运行环境,要安装bison、flex、awk等工具。 PHP 源代码:可以从PHP官方网站下载最新发行版本的源代码的打包文件或者快照,当然也可以通过匿名 CVS 得到最新的开发版本, 本文假定PHP源代码包存放在 d:\ezapp\php-4.3.7 目录下。 编译好开发PHP扩展时所需的文件,如php4ts.lib、php.exe等,当然也可从已编译好的包里拷贝一份。 二、生成框架: PHP 源代码包里提供了一个自动生成 PHP 扩展的源代码框架,可以加快你的开发进度。 进入命令行模式,执行如下命令(本文假定开发一个名为 myext 的扩展): cd d:\ezapp\php-4.3.7\ext ..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext 执行完以上命令后,会在 ext 目录下自动建立一个名为 myext 的目录,里面的文件就是扩展的源代码的完整框架, 现在就可以编译该扩展了。 msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS" 编译完成后,会在 d:\ezapp\php-4.3.7\Release_TS 目录下生成一个 myext.dll 文件。拷贝这个文件到你的PHP目录下了 (如:c:\php\extension),并在 php.ini 中加入 extension=myext.dll ,然后重起WEB服务器,现在打开浏览器输入 http://localhost/myext.php 浏览一下结果(假定已将myext.php 文件拷到WEB根目录下)。 该扩展目前仅包含一个名 confirm_extname_compiled 函数。 三、加入自己的代码: 这里以加入一个带参数的 hello 函数,操作步骤如下: 打开 php_myext.h 文件,增加一条申明语句,如图一所示: (图一) 打开 myext.c 文件,加入自定义的 hello 函数,如图二、三所示: (图二) (图三) 重新编译 myext msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS" 拷贝 myext.dll 文件到你的PHP扩展目录下(如:c:\php\extension),并重起WEB服务器。 新建一个 hello.php 文件,内容如下,并打开浏览器运行 屏幕上将会输出:Hello EZ Development Team 四、后记 本文仅是一篇入门级文章,旨在带你进入 PHP 扩展开发的行列,本人也将陆续写些高级开发的文章,敬请期待。