php中的ini配置原理详解

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php中的ini配置原理详解脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

使用PHP同学知道PHP.ini配置的生效会贯穿整个SAPI的生命周期。在一段PHP脚本的执行过程中,如果手动修改ini配置,是不会启作用的。此时如果无法重启apache或者Nginx等,那么就只能显式的在PHP代码调用ini_set接口。ini_set是PHP向我们提供的一个动态修改配置的函数,需要注意的是,利用ini_set所设置的配置与ini文件中设置的配置,其生效的时间范围并不相同。在PHP脚本执行结束之后,ini_set的设置便会随即失效。

因此本文打算分两篇,第一篇阐述PHP.ini配置原理,第二篇讲动态修改PHP配置。

PHP.ini的配置大致会涉及到三块数据,configuration_hash,EG(ini_directives)以及PG、BG、PCRE_G、JSON_G、XXX_G等。如果不清楚这三种数据的含义也没有关系,下文会详细解释。

1,解析INI配置文件

由于PHP.ini需要在SAPI过程中一直生效,那么解析ini文件并据此来构建PHP配置的工作,必定是发生SAPI的一开始。换句话说,也就是必定发生在PHP的启动过程中。PHP需要任意一个实际的请求到达之前,其内部已经生成好这些配置。

反映到PHP的内核,即为PHP_module_startup函数

PHP_module_startup主要负责对PHP进行启动,通常它会在SAPI开始的时候被调用BTw,还有一个常见的函数PHP_request_startup,它负责将在每个请求到来的时刻进行初始化,PHP_module_startup与PHP_request_startup是两个标识性的动作,不过对他们进行分析并不在本文的探讨范围内。

举个例子,当PHP挂接在apache下面做一个module,那么apache启动的时候,便会激活所有这些module,其中包括PHP module。在激活PHP module时,便会调用PHP_module_startup。PHP_module_startup函数完成了茫茫多的工作,一旦PHP_module_startup调用结束就意味着,OK,PHP已经启动,现在可以接受请求并作出响应了。

PHP_module_startup函数中,与解析ini文件相关的实现是:

代码如下:

脚本宝典总结

以上是脚本宝典为你收集整理的php中的ini配置原理详解全部内容,希望文章能够帮你解决php中的ini配置原理详解所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。