在php.ini加上
[initest]
initest.username=test
nitest.userage=99
实现一个initest类 ,实现一个ini_echo方法,打印相关内容
[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext
[root@bogon ext]# ./ext_skel --extname=initest
[root@bogon ext]# vim initest/config.m4
dnl PHP_ARG_WITH(initest, for initest support,
dnl Make sure that the comment is aligned:
dnl [ --with-initest Include initest support])更改为:
PHP_ARG_WITH(initest, for initest support,
dnl Make sure that the comment is aligned:
[ --with-initest Include initest support])
在php_initest.h中打开全局变量设置块的注释,改成自己相要的变量如下
ZEND_BEGIN_MODULE_GLOBALS(initest)
zend_long userage;
char *username;ZEND_END_MODULE_GLOBALS(initest)
在initest.c打开相关注释,并添加相关代码
ZEND_DECLARE_MODULE_GLOBALS(initest)PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("initest.userage","1", PHP_INI_ALL, OnUpdateLong, userage, zend_initest_globals, initest_globals)
STD_PHP_INI_ENTRY("initest.username","username", PHP_INI_ALL, OnUpdateString, username, zend_initest_globals, initest_globals)PHP_INI_END()PHP_MINIT_FUNCTION(initest){
REGISTER_INI_ENTRIES();
return SUCCESS;}PHP_MSHUTDOWN_FUNCTION(initest){
/* uncomment this line if you have INI entries
UNREGISTER_INI_ENTRIES();
*/
UNREGISTER_INI_ENTRIES();
return SUCCESS;}static void php_initest_init_globals(zend_initest_globals *initest_globals){
//initest_globals->userage = 1; //initest_globals->username = "testusername";}PHP_FUNCTION(ini_echo){
php_printf("username:%s\n",INITEST_G(username));
php_printf("userage:%d\n",INITEST_G(userage));}const zend_function_entry initest_functions[] = {
PHP_FE(confirm_initest_compiled, NULL) /* For testing, remove later. */
PHP_FE(ini_echo, NULL) /* For testing, remove later. */
PHP_FE_END /* Must be the last line in initest_functions[] */};
* [root@bogon hello]# [root@localhost person]# ./configure && make && make install
[initest]
initest.userage=99initest.username=test
extension=initest.so
[root@bogon tests]# cat test.php<?php
ini_echo();[root@bogon tests]# php test.phpusername:testuserage:99
- 请尊重本人劳动成功,可以随意转载但保留以下信息
- 作者:岁月经年
- 时间:2016年03月
- 来自:www.djhull.com
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。