以下是详解"Windows7下开发PHP扩展"的完整攻略,该过程包含两条示例说明。
步骤1:安装必须工具
在开始进行PHP扩展开发之前,需要确保你的电脑上安装了以下工具:
- Visual Studio 2017或以上版本
- PHP(预编译DLL文件)
- PHP开发包(一般来说PHP版本与预编译DLL文件要匹配)
步骤2:下载和解压PHP源码
首先需要从PHP官网上下载与你的PHP版本匹配的源码,解压到本地开发环境中。
步骤3:编写扩展代码
创建一个新的扩展文件夹,最好以php_作为前缀,创建两个文件:config.w32和php_extname.c。config.w32用于生成Visual Studio项目文件,php_extname.c则是你的扩展代码文件。
以下是示例代码:
config.w32
ARG_WITH("extname", "extname Extension support", "no");
if (PHP_EXTNAME != "no") {
EXTENSION("extname", "extname.c");
}
php_extname.c
#include "php.h"
static PHP_FUNCTION(hello_ext) {
php_printf("Hello World!");
}
static const zend_function_entry extname_functions[] = {
PHP_FE(hello_ext, NULL)
PHP_FE_END
};
zend_module_entry extname_module_entry = {
STANDARD_MODULE_HEADER,
"Extname",
extname_functions,
NULL,
NULL,
NULL,
NULL,
NULL,
"0.1",
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_EXTNAME
ZEND_GET_MODULE(extname)
#endif
步骤4:生成Visual Studio项目文件
打开Visual Studio自带的"Developer Command Prompt for VS 20XX",在该窗口下输入以下命令:
set PHP_SDK=D:\php-sdk
set PATH=%PHP_SDK%\bin;%PATH%
cd extname # extname为你刚才创建的扩展文件夹
phpize
./configure --with-php-config=D:\php-sdk\php.ini
nmake
注意:D:\php-sdk是你的PHP开发包路径。
步骤5:测试扩展
编译完成后,你可以在Windows命令行下进入该项目的根目录,执行以下命令测试你的扩展:
php -d extension=modules/extname.dll -r "hello_ext();"
如果看到"Hello World!"字样,则说明你的扩展已经成功安装并运行。
示例1:实现"Hello World"输出
在php_extname.c中添加如下代码:
static PHP_FUNCTION(hello_ext) {
php_printf("Hello World!");
}
重新编译,执行命令php -d extension=modules/extname.dll -r "hello_ext();"可看到输出:Hello World!
示例2:实现传参数并输出
在php_extname.c中添加如下代码:
static PHP_FUNCTION(hello_name) {
char *name;
int name_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) {
return;
}
php_printf("Hello %s!", name);
}
static const zend_function_entry extname_functions[] = {
PHP_FE(hello_ext, NULL)
PHP_FE(hello_name, NULL)
PHP_FE_END
};
重新编译,执行命令php -d extension=modules/extname.dll -r "hello_name('Bob');"可看到输出:Hello Bob!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Window7 下开发php扩展 - Python技术站