• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详细介绍关于php的ini文件相关操作函数

php 搞代码 4年前 (2022-01-04) 45次浏览 已收录 0个评论
文章目录[隐藏]

在小公司,特别是创业型公司,整个服务器的搭建一般也是我们PHP开发工程师的职责之一。其中,最主要的一项就是要配置好服务器的php.ini文件。一些参数会对服务器的性能产生深远的影响,而且也有些参数是可以在PHP运行时动态指定和获取的。今天,我们就来学习一些和php.ini文件有关的操作函数。

动态设置ini文件的配置参数

这个函数相信大家不会陌生,基本上做过 PHP 开发的都会使用过。但是,有些参数是无法修改的,这个你知道吗?

ini_set('allow_url_fopen', 0);
echo ini_get('allow_url_fopen'), PHP_EOL; // 1 ,无法修改,PHP_INI_SYSTEM

ini_set('memory_limit', -1);
echo ini_get('memory_limit'), PHP_EOL; // -1,可以修改,PHP_INI_ALL

请注意看注释,第一条注释中写了 ,PHP_INI_SYSTEM ,并且这个参数无法修改。没错,相信聪明的你已经看出来了,这些参数是有对应的类型的。PHP_INI_SYSTEM 的意思就是只能在 php.ini 或者 httpd.conf 中进行修改,无法在语言动态运行时修改。

不同的 php.ini 配置参数对应有四种类型:

  • PHP_INI_USER:可在用户脚本(例如 ini_set())或 Windows 注册表(自 PHP 5.3 起)以及 .user.ini 中设定

  • PHP_INI_PERDIR:可在 php.ini,.htaccess 或 httpd.conf 中设定

  • PHP_INI_SYSTEM:可在 php.ini 或 httpd.conf 中设定

  • PHP_INI_ALL:可在任何地方设定

也就是说,使用 ini_set() 我们可以设定类型为 PHP_INI_USER 和 PHP_INI_ALL 类型的参数,而其它两种只能在 php.ini 或其他配置文件中设置修改。具体的配置参数对应的类型请参考 PHP 相关文档。

https://www.php.net/manual/zh/ini.list.php

获取ini文件中的配置信息

当然,读取 php.ini 文件中的配置信息就没有什么限制了。直接就可以读取,我们可以使用两个函数来进行读取,它们是:get_cfg_var() 和 ini_get() 。另外,还有一个可以获取数组集合形式的配置信息的函数 ini_get_all() 。我们一个一个来看。

get_cfg_var() 和 ini_get()

都是读取单个配置参数信息。

echo get_cfg_var('error_reporting'), PHP_EOL; // 32759
echo ini_get('error_reporting'), PHP_EOL; // 32759

echo get_cfg_var('request_order'), PHP_EOL; // GP
echo ini_get('request_order'), PHP_EOL; // GP

// php.ini A=TEST_A
echo get_cfg_var('A'), PHP_EOL; // TEST_A
echo ini_get('A'), PHP_EOL; //

上面两条不用多解释,我们需要注意到的是,最后一条。我们在 php.ini 文件中定义了一个自定义的配置参数 A 。可以看到,get_cfg_var() 可以正常获取到这条信息,但 ini_get() 无法获取。我们再看另外一个例子。

ini_set('error_reporting', E_WARNING);
echo get_cfg_var('error_reporting'), PHP_EOL; // 32759,只返回.ini的内容
echo ini_get('error_reporting'), PHP_EOL; // 2,返回当前配置运行时的状态

使用 ini_s来源[email protected]搞@^&代*@码网et() 动态设置了 error_reporting 参数后,get_cfg_var() 返回是 ini_set() 设置的值,而 ini_get() 获取的依然是 php.ini 文件里面配置的值。

从上面两个例子可以看出这两个函数的区别:

  • get_cfg_var(),可以获取自定义的配置参数值,但只以 php.ini 文件为准,无法获得动态修改的参数值

  • ini_get(),无法获取自定义的配置参数值,以当前的动态脚本运行时的配置为准,也就是能够获取到 ini_set() 修改后的参数值

ini_get_all()


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详细介绍关于php的ini文件相关操作函数

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址