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

PHP 核心配置操作四大 ini_* 函數實戰指南

     編輯:PHP 相關知識

函數速查表

函數用途回傳值
ini_get($varname)取得單一設定值字串 / "1"(On) / "0"(Off) / 空字串(未設定)
ini_set($varname, $newvalue)執行期修改設定舊值 / false(失敗)
ini_get_all([$extension])取得所有設定陣列關聯陣列 [global_value, local_value, access]
ini_restore($varname)還原為 php.ini 原始值void

實戰範例

1. 動態檢測 magic_quotes_gpc 並決定是否 addslashes

function stringFilter($str) {
    // PHP 5.4+ 已移除 magic_quotes_gpc,僅作舊版相容示範
    if (ini_get('magic_quotes_gpc')) {
        return $str;
    }
    return addslashes($str);
}

2. 相容 register_globals 開關的變數取得

function getGetVar($var) {
    if (ini_get('register_globals')) {
        return $$var; // 直接取全域變數(不建議)
    }
    return $_GET[$var] ?? null; // 現代標準寫法
}

3. 執行期調整錯誤報告層級

// 開發環境顯示所有錯誤
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);

// 生產環境隱藏錯誤但記錄日誌
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');

4. 取得所有 core 設定值

$all = ini_get_all('core');
foreach ($all as $name => $info) {
    echo "$name => {$info['local_value']} (access: {$info['access']})<br>";
}

存取模式常數

  • PHP_INI_USER:腳本可用 ini_set 修改
  • PHP_INI_PERDIR:php.ini / .htaccess / httpd.conf 可修改
  • PHP_INI_SYSTEM:僅 php.ini / httpd.conf 可修改
  • PHP_INI_ALL:任意位置可修改

注意事項

  • ini_set 修改僅影響當前請求生命週期,請求結束自動還原。
  • 部分系統級設定(如 memory_limit、max_execution_time)在腳本啟動後修改可能不生效。
  • PHP 8.1+ 棄用 ini_get_all() 的 $extension 參數,建議改用 php_ini_loaded_file() 配合解析。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved