php7 读取php.ini[4]
在php.ini加上
[initest]
initest.username=test
nitest.userage=99
实现一个initest类 ,实现一个ini_echo方法,打印相关内容
2.initest扩展2.1创建类的扩展:[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext
[root@bogon ext]# ./ext_skel --extname=initest
2.2 修改配置[root@bogon ext]# vim initest/config.m4
dnlPHP_ARG_WITH(initest,forinitestsupport,dnlMakesurethatthecommentisaligned:dnl[--with-initestIncludeinitestsupport])更改为:PHP_ARG_WITH(initest,forinitestsupport,dnlMakesurethatthecommentisaligned:[--with-initestIncludeinitestsupport])2.3 实现代码
在php_initest.h中打开全局变量设置块的注释,改成自己相要的变量如下
ZEND_BEGIN_MODULE_GLOBALS(initest)zend_longuserage;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();returnSUCCESS;}PHP_MSHUTDOWN_FUNCTION(initest){/*uncommentthislineifyouhaveINIentriesUNREGISTER_INI_ENTRIES();*/UNREGISTER_INI_ENTRIES();returnSUCCESS;}staticvoidphp_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));}constzend_function_entryinitest_functions[]={PHP_FE(confirm_initest_compiled,NULL)/*Fortesting,removelater.*/PHP_FE(ini_echo,NULL)/*Fortesting,removelater.*/PHP_FE_END/*Mustbethelastlineininitest_functions[]*/};2.4 编译
*[root@bogonhello]#[root@localhostperson]#./configure&&make&&makeinstall2.5 扩展安装
[initest]initest.userage=99initest.username=testextension=initest.so2.6 扩展使用
[root@bogontests]#cattest.php<?phpini_echo();[root@bogontests]#phptest.phpusername:testuserage:99
-请尊重本人劳动成功,可以随意转载但保留以下信息-作者:岁月经年-时间:2016年03月-来自:www.djhull.com
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。