您的位置:首页 > 编程语言 > C语言/C++

windows 系统 C语言写PHP简单扩展

2016-05-24 13:04 405 查看
PHP是纯C语言写出来的,其实也可以理解为PHP是C语言的接口,我使用PHP就是使用了C语言的接口,我们完全可以用C写PHP的扩展,准备工作,PHP分为VC6/VC9/VC11,高版本的C语言需要VC2008,但是VC2008太大我不想去安装,于是就选择了VC6,这么的话PHP只能选择5.3版本的,下面开始工作准备:

1.下载PHP源码和其他工具,我已经上传好了下载链接http://download.csdn.net/detail/gaoxuaiguoyi/9529484

2.进入你解压的文件下面打开docs窗口:buildconf



3.设置临时的环境属性:set path=%path%;D:/php-5.3.8/bin

中间必须安装了VC6.0,工具在压缩包里面自己安装,如果提示缺少mspdb60.dll就解压(如果是32位就放到C:\Windows\System32下面,64位放到C:\Windows\SysWOW64)

4.执行:cscript /nologo configure.js --with-php-build="../php5.3.8" --without-libxml --disable-odbc

5.进入ext目录下面执行:php ext_skel_win32.php --extname=myfirstdll

6.用编辑器打开php_myfirstdll.h在PHP_FUNCTION(confirm_myfirstdll_compiled);下面加入PHP_FUNCTION(sayHello);

7.打开myfirstdll.c在PHP_FE(confirm_myfirstdll_compiled,
NULL)下面加入PHP_FE(sayHello,NULL)

8.编写sayHello方法在PHP_FUNCTION(confirm_myfirstdll_compiled)下面添加:

PHP_FUNCTION(sayHello)
{
char *arg = NULL;
int arg_len, len;
char *strg;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
php_printf("Hello!!!,%s");
}
9.找到myfirstdll.dsp用VC6.0打开,点击build(或者F7直接生成myfirstdll.dll)

在点击之前要去选择编译环境,我们选择release模式:

点击组建会有移除工程配置,我们选择Release就可以了.





10.找到dll文件在解压的目录下面会生成Release_TS



就可以找到生成的dll文件了,进行测试要用5.3版本的php去测试否则是不行的,下载php-5.3.5-Win32-VC6-x86版本即可,把扩展加入ext,在PHP.ini加入extension
= myfirstdll;

写一个test.php文件:

<?php

sayHello('sahaks');


执行:



至此已经简单的完成了,C语言在windows下面如何写扩展,如果在linux下面会更方便,以后会在linux下面进行测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: