VC6.0下PHP扩展开发详细教程



PHP开发在windows下建议使用 vc6.0,以下是经过本人实践的确定出来的工具和步骤,注意需要严格按配置才能正常运行。

一、       开发环境:

a)       Cygwin

b)       VC6.0

c)       Wamp

d)      php-5.2.17-Win32-VC6-x86

e)       php源码(php-5.2.17-src.zip)

 

VC6.0下PHP扩展开发详细教程_Win32

一、       环境配置

a)       安装wamp,安装完后,把php-5.2.17-Win32-VC6-x86.zip解压,把文件覆盖/wamp/php目录

b)       用/wamp/php目录下的文件覆盖/wamp/Apatch2/bin目录下的文件

c)       添加环境变量php工作目录,vc6 IDE目录及bin目录,我的环境如下:

Path=D:\wamp\php;D:\Program Files\Microsoft VisualStudio\VC98\Bin;

D:\Program Files\Microsoft VisualStudio\Common\MSDev98\Bin

       测试php 是否安装正确

输入php –v 查看PHP 版本。

 

二、       源码环境

a)       解压php-5.2.17-src.zip,将其放在你想放的位置//D:\php-5.2.17

b)       运行主目录下buildconf.bat / configure.bat

c)       修改ext/ext_skel_win32.php

$cygwin_path = 'D:\ProgramFiles\cygwin\bin'; //这里是你cygwin/bin的安装目录

三、       工程生成:

a)       进入命令行模块(运行CMD),进入源码目录// D:\php-5.2.17\ext

b)       输入 php ext_skel_win32.php --extname = shello//后面是工程名

c)       成功后会在D:\php-5.2.17\ext目录下成hello 工程,然后用vc6打开工程文件


VC6.0下PHP扩展开发详细教程_PHP_02


一、       添加代码:

a)       打开php_hello.h
在
PHP_FUNCTION(confirm_sayhello_compiled);     
//后面添加需添加的函数

如下:


VC6.0下PHP扩展开发详细教程_Win32_03


a)       打开 php_hello.c添加实现代码


VC6.0下PHP扩展开发详细教程_Win32_04


a)       打开 php_hello.c添加导出

如下所示,红色部分是我添加的

zend_function_entry sayhello_functions[] = {
       PHP_FE(confirm_sayhello_compiled,  NULL)         /*For testing, remove later. */
       PHP_FE(hello,NULL)
       {NULL,NULL, NULL} /* Must be the last line insayhello_functions[] */
};

 

一、       编译.链接:

在项目链接库模块中将改成Win32Release_TS ,编译后缺少php5ts.lib,这个文件在wamp\php\dev目录下可以找到;将其添加到程序目录下,或者设置环境变量。

生成文件在可以放到wamp\php\ext\目录下

 

二、       注册插件:

修改wamp\php\php.ini

[PHP]

添加,最后放在 extension= 最后

extension=php_hello.dll

三、       测试代码:

可以先采用命令行方式

Php –r “ echo hello (‘Join); “.

 

注意”hello” 与 “(“之间有空格)

可以建立一个php文件如test.php放在wamp/www 目录下,内容如下


VC6.0下PHP扩展开发详细教程_PHP_05


 <?php echo hello(“Join”);?>

执行

Php –f test.php

这样你就可以在页面上看见


VC6.0下PHP扩展开发详细教程_php_06


VC6.0下PHP扩展开发详细教程_php_07

VC6.0下PHP扩展开发详细教程_PHP_08

上面是我自己写的加载DLL的部分程序,同一般加载dll一样,希望能帮助到你。

一、       部署

注意扩展的所有依赖库,必须放在windows安装目录或wamp\Apache2\bin下

 

_________________________________________________________________________________________________________________________

需要注意的是: 

如果php版本不是5.2.17.比如,我用的版本是5.3.3

d)      php-5.3.3-Win32-VC6-x86

e)       php源码(php-5.3.3-src.zip)

在编译时会提醒缺少config.win32.h,需要将php-5.2.17-src里面的main文件夹里的此文件copy到php-3.3.-src的main文件夹


文中

a)       打开 php_hello.c添加实现代码

VC6.0下PHP扩展开发详细教程_Win32_04

中有一个错误:len=sprintf(&strg,0,"%s say: Hello",arg);

应该是:len=spprintf(&strg,0,"%s say:Hello",arg);




0 0


  • 上一篇关于PHP自定义扩展加载的问题
  • 下一篇php启动外部某个可执行的exe文件,exe文件为界面执行文件。


PHP开发在windows下建议使用 vc6.0,以下是经过本人实践的确定出来的工具和步骤,注意需要严格按配置才能正常运行。

一、       开发环境:

a)       Cygwin

b)       VC6.0

c)       Wamp

d)      php-5.2.17-Win32-VC6-x86

e)       php源码(php-5.2.17-src.zip)

 

VC6.0下PHP扩展开发详细教程_Win32

一、       环境配置

a)       安装wamp,安装完后,把php-5.2.17-Win32-VC6-x86.zip解压,把文件覆盖/wamp/php目录

b)       用/wamp/php目录下的文件覆盖/wamp/Apatch2/bin目录下的文件

c)       添加环境变量php工作目录,vc6 IDE目录及bin目录,我的环境如下:

Path=D:\wamp\php;D:\Program Files\Microsoft VisualStudio\VC98\Bin;

D:\Program Files\Microsoft VisualStudio\Common\MSDev98\Bin

       测试php 是否安装正确

输入php –v 查看PHP 版本。

 

二、       源码环境

a)       解压php-5.2.17-src.zip,将其放在你想放的位置//D:\php-5.2.17

b)       运行主目录下buildconf.bat / configure.bat

c)       修改ext/ext_skel_win32.php

$cygwin_path = 'D:\ProgramFiles\cygwin\bin'; //这里是你cygwin/bin的安装目录

三、       工程生成:

a)       进入命令行模块(运行CMD),进入源码目录// D:\php-5.2.17\ext

b)       输入 php ext_skel_win32.php --extname = shello//后面是工程名

c)       成功后会在D:\php-5.2.17\ext目录下成hello 工程,然后用vc6打开工程文件


VC6.0下PHP扩展开发详细教程_PHP_02


一、       添加代码:

a)       打开php_hello.h
在
PHP_FUNCTION(confirm_sayhello_compiled);     
//后面添加需添加的函数

如下:


VC6.0下PHP扩展开发详细教程_Win32_03


a)       打开 php_hello.c添加实现代码


VC6.0下PHP扩展开发详细教程_Win32_04


a)       打开 php_hello.c添加导出

如下所示,红色部分是我添加的

zend_function_entry sayhello_functions[] = {
       PHP_FE(confirm_sayhello_compiled,  NULL)         /*For testing, remove later. */
       PHP_FE(hello,NULL)
       {NULL,NULL, NULL} /* Must be the last line insayhello_functions[] */
};

 

一、       编译.链接:

在项目链接库模块中将改成Win32Release_TS ,编译后缺少php5ts.lib,这个文件在wamp\php\dev目录下可以找到;将其添加到程序目录下,或者设置环境变量。

生成文件在可以放到wamp\php\ext\目录下

 

二、       注册插件:

修改wamp\php\php.ini

[PHP]

添加,最后放在 extension= 最后

extension=php_hello.dll

三、       测试代码:

可以先采用命令行方式

Php –r “ echo hello (‘Join); “.

 

注意”hello” 与 “(“之间有空格)

可以建立一个php文件如test.php放在wamp/www 目录下,内容如下


VC6.0下PHP扩展开发详细教程_PHP_05


<?php echo hello(“Join”);?>
执行
Php –f test.php

这样你就可以在页面上看见


VC6.0下PHP扩展开发详细教程_php_06


VC6.0下PHP扩展开发详细教程_php_07

VC6.0下PHP扩展开发详细教程_PHP_08

上面是我自己写的加载DLL的部分程序,同一般加载dll一样,希望能帮助到你。

一、       部署

注意扩展的所有依赖库,必须放在windows安装目录或wamp\Apache2\bin下

 

_________________________________________________________________________________________________________________________

需要注意的是: 

如果php版本不是5.2.17.比如,我用的版本是5.3.3

d)      php-5.3.3-Win32-VC6-x86

e)       php源码(php-5.3.3-src.zip)

在编译时会提醒缺少config.win32.h,需要将php-5.2.17-src里面的main文件夹里的此文件copy到php-3.3.-src的main文件夹


文中

a)       打开 php_hello.c添加实现代码

VC6.0下PHP扩展开发详细教程_Win32_04

中有一个错误:len=sprintf(&strg,0,"%s say: Hello",arg);

应该是:len=spprintf(&strg,0,"%s say:Hello",arg);