广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php的ini文件相关操作函数的详细介绍
  • 953
分享到

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

2023-06-20 13:06:54 953人浏览 独家记忆
摘要

本篇内容介绍了“PHP的ini文件相关操作函数的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在小公司,特别是创业型公司,整个服务器

本篇内容介绍了“PHP的ini文件相关操作函数的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在小公司,特别是创业型公司,整个服务器的搭建一般也是我们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_SYSTEMini_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; // 32759echo ini_get('error_reporting'), PHP_EOL; // 32759echo get_cfg_var('request_order'), PHP_EOL; // GPecho ini_get('request_order'), PHP_EOL; // GP// php.ini A=TEST_Aecho get_cfg_var('A'), PHP_EOL; // TEST_Aecho 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_set() 动态设置了 error_reporting 参数后,get_cfg_var() 返回是 ini_set() 设置的值,而 ini_get() 获取的依然是 php.ini 文件里面配置的值。

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

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

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

ini_get_all()

它获取的是一组数据,比如我们安装的一些扩展 Swoole 、 xDebug 或者 mysqlnd 这类的配置信息。

print_r(ini_get_all('swoole'));echo PHP_EOL;// Array// (//     [swoole.display_errors] => Array//         (//             [global_value] => On//             [local_value] => On//             [access] => 7//         )//     [swoole.enable_coroutine] => Array//         (//             [global_value] => On//             [local_value] => On//             [access] => 7//         )//     [swoole.enable_library] => Array//         (//             [global_value] => On//             [local_value] => On//             [access] => 7//         )//     [swoole.enable_preemptive_scheduler] => Array//         (//             [global_value] => Off//             [local_value] => Off//             [access] => 7//         )//     [swoole.unixsock_buffer_size] => Array//         (//             [global_value] => 262144//             [local_value] => 262144//             [access] => 7//         )//     [swoole.use_shortname] => Array//         (//             [global_value] => //             [local_value] => //             [access] => 4//         )// )

可以看出,我们针对 Swoole 所作的所有配置信息都以数组形式返回了。

还原配置信息

当我们使用了 ini_set() 动态设置了参数信息后,想还原为 php.ini 文件中的默认配置的话,直接使用一个 ini_restore() 函数就可以了。

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

依然是沿用上面的代码, error_reporting 已经被我们修改为了 2 ,这时,我们直接使用 ini_restore() 进行了还原,再使用 ini_get() 就可以看到 error_reporting 参数还原回了 php.ini 文件中定义的原始值。

获取当前加载的配置文件路径

当你接手一台服务器的时候,往往第一步就是找到它的相关应用配置文件,比如 Mysql 的 my.ini 或者 Nginx 的 conf 相关配置文件路径,而 PHP 中我们第一步就是要找到 php.ini 文件在哪里。

echo php_ini_loaded_file(), PHP_EOL;// /usr/local/etc/php/7.3/php.iniecho php_ini_scanned_files(), PHP_EOL;

我们直接使用 php_ini_loaded_file() 就可以方便的获取到当前运行的脚本环境中加载的 php.ini 文件的路径。而 php_ini_scanned_files() 函数则是会以逗号分隔的形式返回所有可以扫描 php.ini 文件的路径。其实这两个参数在 phpinfo() 中都都有所体现,但很多时候我们并不能直接在生产环境中去使用 phpinfo() 。

其实,相对于这两个函数或 phpinfo() 来说,更好的方案是直接在命令行查找 php.ini 文件的位置。

php --ini# Configuration File (php.ini) Path: /usr/local/etc/php/7.3# Loaded Configuration File:         /usr/local/etc/php/7.3/php.ini# Scan for additional .ini files in: /usr/local/etc/php/7.3/conf.d# Additional .ini files parsed:      /usr/local/etc/php/7.3/conf.d/ext-opcache.iniphp -i | grep "Configuration"# Configuration File (php.ini) Path => /usr/local/etc/php/7.3# Loaded Configuration File => /usr/local/etc/php/7.3/php.ini# Configuration

phpinfo()

关于 phpinfo() ,我们不用解释太多,里面的内容都有什么应该是学习使用 PHP 的开发人员的必修课。在这里,我们只是介绍一下 phpinfo() 这个函数的参数。没错,它是有参数的,可以只显示一部分的信息而不是全部都显示出来。

  • INFO_GENERAL:配置的命令行、 php.ini 的文件位置、建立的时间、WEB 服务器、系统及更多其他信息。

  • INFO_CREDITS:PHP 贡献者名单。参加 phpcredits()。

  • INFO_CONFIGURATION:当前PHP指令的本地值和主值。参见 ini_get()。

  • INFO_MODULES:已加载的模块和模块相应的设置。参见 get_loaded_extensions()。

  • INFO_ENVIRONMENT:环境变量信息也可以用 $_ENV 获取。

  • INFO_VARIABLES:显示所有来自 EGPCS (Environment, GET, POST, Cookie, Server) 的 预定义变量。

  • INFO_LICENSE:PHP许可证信息。参见 » license FAQ。

  • INFO_ALL:显示以上所有信息。

phpinfo(INFO_MODULES);

上面的代码在页面中所显示的信息就只是已加载模式相关的配置信息了。phpinfo() 会直接输出到页面上,如果想将它的内容保存在一个变量中,我们需要使用输出缓冲控制来进行操作。我们将在后面的文章中讲到这方面的内容。这里就简单的给一段代码。

ob_start();phpinfo();$v = ob_get_contents();ob_end_clean();echo $v;

总结

不看不知道,一看吓一跳。原来只是使用过 ini_set() 去修改运行时内存大小,但直到今天才知道原来 ini_set() 并不是所有的配置都可以修改的,每个参数是否能动态修改还要看它的参数类型。而且上面还忘了说了,我们并不能使用 ini_set() 去增加配置参数。也就是说,使用 ini_set("B", "TEST_B") 增加一个 B 参数,然后直接使用 ini_get() 也是无法获取的。而且简单的获取参数信息的两个函数也有这么多的不同,phpinfo() 原来也有这么多参数。果然,文档才是最好的学习资料。旅程还没有停止,我们刷文档的脚步依然不能停,一起加油冲冲冲!!

测试代码:

https://GitHub.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E5%85%B3%E4%BA%8Ephp%E7%9A%84ini%E6%96%87%E4%BB%B6%E7%9B%B8%E5%85%B3%E6%93%8D%E4%BD%9C%E5%87%BD%E6%95%B0%E6%B5%85%E6%9E%90.php

“php的ini文件相关操作函数的详细介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: php的ini文件相关操作函数的详细介绍

本文链接: https://www.lsjlt.com/news/296945.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php的ini文件相关操作函数的详细介绍
    本篇内容介绍了“php的ini文件相关操作函数的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在小公司,特别是创业型公司,整个服务器...
    99+
    2023-06-20
  • C语言文件操作与相关函数介绍
    目录1.操作的准备2.文件的打开3.文件的使用方式4.相关的函数4.1 fputc4.2 fgetc4.3 fputs4.4 fgets4.5 fprintf4.6 fscanf4....
    99+
    2022-11-13
  • PHP中的日期相关函数介绍
    这篇文章主要介绍“PHP中的日期相关函数介绍”,在日常操作中,相信很多人在PHP中的日期相关函数介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中的日期相关函数介绍”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • C/C++文件的操作函数介绍
    这篇文章主要介绍“C/C++文件的操作函数介绍”,在日常操作中,相信很多人在C/C++文件的操作函数介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C/C++文件的操作函数介绍”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • php文件夹与文件目录操作函数介绍
    php文件夹操作函数 string basename ( string path [, string suffix] )给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文...
    99+
    2022-11-15
    文件夹 文件目录
  • Java中File文件操作类的详细使用介绍
    文章目录 File类的使用File的介绍File常用API判断文件类型-获取文件信息创建文件-删除文件功能遍历文件夹 File类的使用 File的介绍 File的概述: File类在包java.io.Fil...
    99+
    2023-08-21
    java jvm 开发语言
  • Node.js中文件操作模块File System的详细介绍
    File System的缩写是fs,该模块提供本地文件的读写能力。 Nodejs导入文件系统模块(fs)语法如下所示: var fs = require("fs"); 异步和同步 Node.js文件系...
    99+
    2022-06-04
    详细介绍 模块 操作
  • PHP日期相关函数的介绍及用法
    这篇文章主要介绍“PHP日期相关函数的介绍及用法”,在日常操作中,相信很多人在PHP日期相关函数的介绍及用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP日期相关函数的介绍及用法”的疑惑有所帮助!接下来...
    99+
    2023-06-20
  • 操作系统的Hosts文件的详细介绍与解析(图文)
    一、什么是Hosts文件?    hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS...
    99+
    2023-05-26
    Hosts文件 图文 文件 介绍 解析 Hosts
  • java中有关于jar包操作的详细介绍
    为什么用jar包、什么是jar包.java文件编译好后生成.class文件,如果直接写在其他程序或提供给别人使用会很不方便,因此将一些.class文件打包成一个jar包,jar包中还可以包含一些资源文件(如txt文件、html文件、css文...
    99+
    2017-08-02
    java入门 java jar包
  • Python中的数据类型的相关操作介绍
    本篇内容主要讲解“Python中的数据类型的相关操作介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的数据类型的相关操作介绍”吧!1-1 Python中的数据类型一、整数Pyth...
    99+
    2023-06-02
  • 详细介绍PHP函数和方法的区别
    随着互联网技术的发展,PHP已经成为了非常流行的开发语言之一。身为一个PHP开发者,了解PHP函数和方法的区别是非常重要的,因为它们在编写代码的时候都是必不可少的。在本文中,我们将详细介绍PHP函数和方法的区别。PHP函数是一段可重复使用的...
    99+
    2023-05-14
    php php函数
  • MyBatis操作数据库的详细步骤介绍
    这篇文章主要介绍“MyBatis操作数据库的详细步骤介绍”,在日常操作中,相信很多人在MyBatis操作数据库的详细步骤介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”My...
    99+
    2022-10-18
  • python中文件操作的相关函数有哪些
    python中文件操作的相关函数有以下几种os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false ;os.path.isfile(name):判断name是不是一个文件,不存在name也返回fa...
    99+
    2022-10-21
  • DEDECMS根目录下面的相关文件的作用介绍
    做网站用DEDE的朋友不在少数,我觉得别人推荐的可能占了大多数,还有的就是因为别人说php+mysql好,比较安全,然后就开始到网上查找相关的 cms,而DEDE一般是别人的首推,所以新人也就开始使用DEDE了,然后就成...
    99+
    2022-06-12
    DEDECMS 根目录 相关文件
  • PHP常见的文件操作方式介绍
    这篇文章主要讲解了“PHP常见的文件操作方式介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP常见的文件操作方式介绍”吧!1.打开文件resource fopen ...
    99+
    2023-06-17
  • 如何进行C++文件操作的应用函数介绍
    今天就跟大家聊聊有关如何进行C++文件操作的应用函数介绍,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++编程语言应用方式灵活,可以被看做C语言的升级版本。我们可以通过这篇文章介绍...
    99+
    2023-06-17
  • Python中关于文件的具体操作与介绍
    目录文件的介绍文件的打开与关闭1.打开文件2.写数据(write)3.读数据(read)4.读数据(readlines)5.读数据(readline)6.可写 ,追加(a)二进制文件...
    99+
    2022-11-12
  • 操作系统中的Hosts文件工作原理和作用及其详细介绍
    一、什么是Hosts文件? Hosts是一个没有扩展名的系统文件,Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。可以用记事本等...
    99+
    2023-06-16
    操作系统 Hosts文件 工作原理 作用 文件 工作 原理 Hosts
  • linux下的回收站以及U盘中的.Trash文件夹相关操作介绍
    这篇文章主要讲解了“linux下的回收站以及U盘中的.Trash文件夹相关操作介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下的回收站以及U盘中的.Trash文件夹相关操作介绍...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作