| 參數 | 默認值 | 說明 | 實戰場景 |
| display_errors | On | 顯示錯誤信息 | 開發環境 On,生產 Off |
| error_reporting | E_ALL | 錯誤報告級別 | 開發 E_ALL,生產 E_ALL & ~E_NOTICE |
| max_execution_time | 30 | 腳本最大執行秒數 | 長任務設 300/0(無限制) |
| memory_limit | 128M | 腳本內存上限 | 大數據導入導出調大 |
| post_max_size | 8M | POST 數據最大值 | 文件上傳需大於 upload_max_filesize |
| upload_max_filesize | 2M | 上傳文件大小限制 | 配合 post_max_size 調整 |
| session.gc_maxlifetime | 1440 | Session 垃圾回收壽命(秒) | 調整登錄保持時間 |
| default_charset | UTF-8 | 默認字符集 | 統一編碼設定 |
| date.timezone | UTC | 默認時區 | ini_set('date.timezone','Asia/Shanghai') |
| include_path | .:/php/includes | 包含文件搜索路徑 | 動態添加庫路徑 |
ini_set/ini_get 實戰模式
1. 動態調整錯誤顯示 (開發/生產切換)
<?php
// 開發環境
ini_set('display_errors', '1');
error_reporting(E_ALL);
// 生產環境
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
?>
2. 延長執行時間與內存 (導入導出任務)
<?php
ini_set('max_execution_time', '300'); // 5分鐘
ini_set('memory_limit', '512M'); // 512MB
set_time_limit(300); // 等效函數
?>
3. 動態擴展 include_path
<?php
$newPath = '/data/libs/custom';
ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $newPath);
// 現在可以直接 require 'MyClass.php';
?>
4. 根據配置決定邏輯 (magic_quotes 兼容)
<?php
function safeInput($str) {
// PHP 5.4+ 已移除 magic_quotes,但兼容舊代碼
if (ini_get('magic_quotes_gpc')) {
$str = stripslashes($str);
}
return $str;
}
?>
只讀參數 (僅能 ini_get)
php_version、php_sapi_name、php_os
upload_tmp_dir、extension_dir
- 大多數
PHP_INI_SYSTEM 參數
最佳實踐原則
- 入口文件統一配置:在
bootstrap.php 或 common.php 集中管理
- 環境區分:通過環境變量區分開發/測試/生產配置
- 避免濫用:核心參數 (內存、時間、上傳) 應在 php.ini 設置,ini_set 用於覆蓋
- 安全優先:生產環境禁用
display_errors、allow_url_fopen、expose_php
獲取完整參數列表
php -i | grep "php.ini" # 查看配置文件路徑
php -i | grep "Local Value" # 查看所有當前值
ini_get_all(); # PHP 代碼中獲取所有配置
- 上一篇文章: PHP mb_strlen 處理中英混合字符串長度與截取完整指南
- 下一篇文章: PHP define() 常量定義與變數差異完整指南
Copyright ©
程式碼之家 All Rights Reserved