q968 发表于 2017-3-20 12:56:27

php开发扩展程序

  下载php-src 5.6.13版本(试过5.3版本编译不过)

# ./ext_skel --extname=pkey
Creating directory pkey
Creating basic files: config.m4 config.w32 .gitignore pkey.c php_pkey.h CREDITS EXPERIMENTAL tests/001.phpt pkey.php .
To use your new extension, you will have to execute the following steps:
1.$ cd ..
2.$ vi ext/pkey/config.m4
3.$ ./buildconf
4.$ ./configure ---pkey
5.$ make
6.$ ./sapi/cli/php -f ext/pkey/pkey.php
7.$ vi ext/pkey/pkey.c
8.$ make
  编辑config.m4时,去掉下面几行注释

PHP_ARG_ENABLE(pkey, whether to enable pkey support,
Make sure that the comment is aligned:
[--enable-pkey         Enable pkey support])
PHP_SUBST(PKEY_SHARED_LIBADD)
PHP_NEW_EXTENSION(pkey, pkey.c, $ext_shared)
  编辑pkey.c时定义自己的函数和实现

const zend_function_entry pkey_functions[] = {
//PHP_FE(confirm_pkey_compiled, NULL)         /* For testing, remove later. */
PHP_FE(getpkey, NULL)   
PHP_FE_END      /* Must be the last line in pkey_functions[] */
};
PHP_FUNCTION(getpkey)
{
char *arg = NULL;
int arg_len, len;
char *strg;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
len = spprintf(&strg, 0, "Congratulations! You have successfully modified ext/%.78s/config.m4. Module %.78s is now compiled into PHP.", "pkey", arg);
RETURN_STRINGL(strg, len, 0);
}
  php.ini中加入extension引入扩展使用即可。
页: [1]
查看完整版本: php开发扩展程序