PHP扩展:如何使用ini变量
来源:互联网 发布:诲女知之乎知的意思 编辑:程序博客网 时间:2024/05/16 02:59
在扩展中,有时候需要使用在php.ini中设定的值,在PHP的扩展中 使用ini变量的方式如下:
首先使用:
PHP_INI_BEGIN()
PHP_INI_ENTRY("foo_bar.global_value", "42", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("foo_bar.global_string", "foobar", PHP_INI_ALL, NULL)
PHP_INI_END()
PHP_INI_BEGIN(),PHP_INI_ENTRY(),PHP_INI_END()是Zend定义的一些宏,上述4条语句展开后,形成的结果如下:
可见所有的ini变量都被放到了一个 zend_ini_entry类型的数组中,数组名为 ini_entries.
此时只是定义了这么一个变量,为了能够使用它,需要在MINIT的方法内部进行调用,使用
REGISTER_INI_ENTRIES()完成,这个宏的定义如下:
其实就是直接调用了 zend_register_ini_entries() 进行了注册,并且强制使用了TSRM的方式。
为了保证干净的使用这些ini变量,在MSHUTDOWN时需要对已经注册的ini变量进行清除,使用UNREGISTER_INI_ENTRIES()宏完成,定义如下:
首先使用:
PHP_INI_BEGIN()
PHP_INI_ENTRY("foo_bar.global_value", "42", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("foo_bar.global_string", "foobar", PHP_INI_ALL, NULL)
PHP_INI_END()
PHP_INI_BEGIN(),PHP_INI_ENTRY(),PHP_INI_END()是Zend定义的一些宏,上述4条语句展开后,形成的结果如下:
static zend_ini_entry ini_entries[] = { // BEGIN 的定义
{ 0, PHP_INI_ALL, "foo_bar.global_value", sizeof("foo_bar.global_value"), NULL, NULL, NULL, null, "42", sizeof("42")-1, NULL, 0, 0, NULL},
{ 0, PHP_INI_ALL, "foo_bar.global_string", sizeof("foo_bar.global_string"), NULL, NULL, NULL, null, "foobar", sizeof("foobar")-1, NULL, 0, 0, NULL},
{ 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, NULL } }; // END的定义
{ 0, PHP_INI_ALL, "foo_bar.global_value", sizeof("foo_bar.global_value"), NULL, NULL, NULL, null, "42", sizeof("42")-1, NULL, 0, 0, NULL},
{ 0, PHP_INI_ALL, "foo_bar.global_string", sizeof("foo_bar.global_string"), NULL, NULL, NULL, null, "foobar", sizeof("foobar")-1, NULL, 0, 0, NULL},
{ 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, NULL } }; // END的定义
可见所有的ini变量都被放到了一个 zend_ini_entry类型的数组中,数组名为 ini_entries.
此时只是定义了这么一个变量,为了能够使用它,需要在MINIT的方法内部进行调用,使用
REGISTER_INI_ENTRIES()完成,这个宏的定义如下:
#define REGISTER_INI_ENTRIES() zend_register_ini_entries(ini_entries, module_number TSRMLS_CC)
为了保证干净的使用这些ini变量,在MSHUTDOWN时需要对已经注册的ini变量进行清除,使用UNREGISTER_INI_ENTRIES()宏完成,定义如下:
#define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries(module_number TSRMLS_CC)
- PHP扩展:如何使用ini变量
- PHP扩展-php.ini
- 关于php扩展中使用ini配置和使用全局变量
- php.ini配置PHP扩展
- php.ini 变量功能标注
- 扩展修改PHP.INI里面的值
- php.ini extension 扩展库说明
- PHP扩展开发-06-变量的定义和使用
- PHP扩展开发-03-读取php.ini中的配置
- 修改php.ini配置PHP扩展模块教程
- php扩展中的变量和静态变量
- 如何编写PHP扩展
- 如何编写PHP扩展
- 如何编写PHP扩展
- 如何编写php扩展
- 如何编写PHP扩展
- 如何编写PHP扩展
- 如何编写PHP扩展
- 今天有买了几本书.
- Request.ServerVariables("") 的一些参数说明
- PHP4.4.2中关于BASE64编码中的一点BUG
- 基于角色访问的权限控制
- C语言之指针、数组和函数
- PHP扩展:如何使用ini变量
- 菜鸟上路!!!
- 欲善其事先利其器--Eclips使用秘技
- Struts+Spring+Hibernate练习(完整)
- mdb文件在英文系统下无法打开的问题。。。
- RS485简介
- 第一个XML文档
- php正则表达式全部符号解释
- 我的第一篇blog