PHP Conference Japan 2024

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

php_ini_scanned_files返回从附加 ini 目录解析的 .ini 文件列表

描述

php_ini_scanned_files(): 字符串|false

php_ini_scanned_files() 返回在 php.ini 后解析的配置文件的逗号分隔列表。搜索的目录由编译时选项设置,并且可以选择在运行时由环境变量设置:更多信息可以在 安装指南 中找到。

返回的配置文件包含完整路径。

参数

此函数没有参数。

返回值

成功时返回 .ini 文件的逗号分隔字符串。每个逗号后跟一个换行符。如果未设置配置指令 --with-config-file-scan-dir 并且未设置 PHP_INI_SCAN_DIR 环境变量,则返回 false。如果已设置并且目录为空,则返回空字符串。如果文件无法识别,则文件仍将包含在返回的字符串中,但也会导致 PHP 错误。此 PHP 错误将在编译时和使用 php_ini_scanned_files() 时都会看到。

示例

示例 #1 列出返回的 ini 文件的简单示例

<?php
if ($filelist = php_ini_scanned_files()) {
if (
strlen($filelist) > 0) {
$files = explode(',', $filelist);

foreach (
$files as $file) {
echo
"<li>" . trim($file) . "</li>\n";
}
}
}
?>

参见

添加注释

用户贡献的笔记 1 条笔记

atesin () gmail ! com
5 年前
<警告>

在我从 <php-dir>/php.d/ 加载更多 .ini 文件之前,如 phpinfo() 中列出的(“扫描此目录以查找其他 .ini 文件”和“解析的其他 .ini 文件”部分),php_ini_scanned_files() 什么也没返回给我!

然后我意识到我的 php 二进制文件没有使用 "--with-config-file-scan-dir" 选项编译,如 phpinfo() 中列出的(“配置命令”部分)

然后我想起了其他 .ini 文件目录是通过 "PHP_INI_SCAN_DIR" 系统变量设置的(从 php 5.2.0 开始,请参见 https://php.net/manual/en/configuration.file.php#configuration.file.scan

直到令人困惑和恼人,这是记录的行为......太糟糕了,现在我不知道如何仅使用 php 函数获取其他 ini 文件(除了“shell_exec()”之外?)

</警告>
To Top