首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP get_cfg_var 函數詳解:讀取 PHP 核心配置值

     編輯:PHP 相關知識

PHP get_cfg_var 函數完整指南

get_cfg_var() 是 PHP 內建函數,用於獲取 PHP 配置文件 (php.ini) 中的原始配置值。與 ini_get() 不同,它讀取的是啟動時的原始配置,而非運行時可能被修改的值。

語法與參數

string get_cfg_var(string $varname)
  • $varname:配置選項名稱 (字串)
  • 返回值:成功返回配置值 (字串),失敗返回 false

常見配置選項速查表

配置項說明典型值
max_execution_time腳本最大執行時間 (秒)30
memory_limit每個腳本可用記憶體上限128M
post_max_sizePOST 請求最大資料量8M
upload_max_filesize上傳文件大小上限2M
smtpSMTP 伺服器地址localhost
display_errors是否顯示錯誤資訊On/Off
error_reporting錯誤報告級別E_ALL

實戰範例:獲取核心配置資訊

<?php
$configs = [
    'max_execution_time' => '最大執行時間',
    'memory_limit' => '記憶體限制',
    'post_max_size' => 'POST 最大大小',
    'upload_max_filesize' => '上傳文件大小限制',
    'smtp' => 'SMTP 伺服器',
    'display_errors' => '顯示錯誤',
    'error_reporting' => '錯誤報告級別'
];

echo "<h3>PHP 核心配置資訊</h3>";
echo "<table border='1' cellpadding='5'>";
echo "<tr><th>配置項</th><th>說明</th><th>當前值</th></tr>";

foreach ($configs as $key => $desc) {
    $value = get_cfg_var($key);
    $display = $value !== false ? htmlspecialchars($value) : '未設定/獲取失敗';
    echo "<tr><td>$key</td><td>$desc</td><td>$display</td></tr>";
}
echo "</table>";
?>

get_cfg_var() vs ini_get() 關鍵差異

特性get_cfg_var()ini_get()
讀取來源php.ini 原始配置當前運行時配置
受 ini_set() 影響否是
適用場景檢查原始配置、診斷環境檢查當前生效配置

注意事項

  1. 僅限 PHP_INI_SYSTEM 類別:某些配置項 (如 extension) 無法通過此函數讀取
  2. 返回值皆為字串:數值型配置需自行轉型
  3. 區分大小寫:配置名稱必須完全匹配
  4. 無法讀取陣列型配置:如 disable_functions 需用 ini_get() 並自行解析

進階用法:配置異動檢測

<?php
function detectConfigChanges() {
    $criticalConfigs = ['memory_limit', 'max_execution_time', 'post_max_size'];
    $changes = [];
    
    foreach ($criticalConfigs as $config) {
        $original = get_cfg_var($config);
        $current = ini_get($config);
        
        if ($original !== $current) {
            $changes[$config] = [
                'original' => $original,
                'current' => $current,
                'modified' => true
            ];
        }
    }
    
    return $changes;
}

$changes = detectConfigChanges();
if (!empty($changes)) {
    echo "<h4>⚠️ 偵測到運行時配置異動</h4>";
    print_r($changes);
} else {
    echo "所有關鍵配置與 php.ini 一致";
}
?>

get_cfg_var() 是診斷 PHP 環境、審計配置安全性的重要工具。結合 ini_get() 使用,能完整掌握配置的原始狀態與運行時狀態。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved