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 則註解

2
atesin () gmail ! com
5 年前
<warning>

在我從 phpinfo() 中列出的 <php-dir>/php.d/ 載入更多 .ini 檔案之前(「掃描此目錄以取得額外的 .ini 檔案」和「已解析的額外 .ini 檔案」區段),php_ini_scanned_files() 什麼都沒回傳給我!

然後我發現我的 PHP 執行檔沒有使用 phpinfo()(「Configure Command」區段)中列出的 "--with-config-file-scan-dir" 選項編譯。

然後我想起來額外的 .ini 檔案目錄是透過「PHP_INI_SCAN_DIR」系統變數設定的(從 PHP 5.2.0 開始新增,參見 https://php.dev.org.tw/manual/en/configuration.file.php#configuration.file.scan)。

直到現在,文件記載的行為仍然令人困惑且惱人…很遺憾,我不知道如何純粹使用 PHP 函式取得額外的 ini 檔案(也許除了 "shell_exec()" 之外?)。

</warning>
To Top