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

PHP 系統級函數速查手冊:配置、環境、擴展、版本資訊一覽

     編輯:PHP 相關知識

PHP 系統級函數完整分類速查表

PHP 提供了一組函數用於獲取運行環境、配置參數、擴展模組、版本資訊等系統級數據。本文按功能分類整理,附帶函數用途說明,方便開發調試、環境檢測、兼容性處理時快速查閱。

一、斷言與錯誤處理

函數用途
assert()檢查斷言條件,失敗可觸發錯誤或拋出異常
assert_options()設置/獲取斷言行為標誌(如 ASSERT_ACTIVE、ASSERT_WARNING)

二、配置選項讀寫

函數用途
ini_get($varname)獲取單個配置選項值(字串)
ini_get_all([$extension])獲取所有配置選項,可選按擴展過濾
ini_set($varname, $newvalue)運行時修改配置選項(僅限 PHP_INI_ALL/USER 類別)
ini_restore($varname)恢復配置選項至 php.ini 原始值
ini_alter()ini_set() 別名
get_cfg_var($option)獲取 php.ini 原始值(忽略運行時修改)
set_include_path($path)設置 include_path(影響 require/include 搜尋路徑)
restore_include_path()恢復 include_path 至原始值
get_include_path()獲取當前 include_path

三、擴展模組檢測

函數用途
extension_loaded($name)檢查擴展是否已載入
get_loaded_extensions([$zend_ext])返回所有已載入擴展名稱陣列
get_extension_funcs($module)返回指定擴展提供的所有函數名稱
dl($library)動態載入擴展(CLI/嵌入 SAPI 可用,Web SAPI 通常禁用)
php_ini_scanned_files()返回 --with-config-file-scan-dir 目錄下掃描到的 .ini 文件列表

四、環境與進程資訊

函數用途
getenv($varname)獲取環境變數值(同 $_ENV、$_SERVER)
putenv($setting)設置環境變數(格式 NAME=VALUE)
php_sapi_name()返回 SAPI 類型(如 apache2handler、cli、fpm-fcgi)
php_uname([$mode])返回作業系統資訊(a=全部,s=系統名,r=釋放版,v=版本,m=機器類型)
getmypid()獲取當前 PHP 進程 ID
getmyuid()獲取腳本擁有者 UID
getmygid()獲取腳本擁有者 GID
getmyinode()獲取腳本文件 inode 號
get_current_user()獲取腳本擁有者用戶名
getlastmod()獲取腳本文件最後修改時間(Unix 時間戳)
getrusage([$who])獲取資源使用統計(用戶/系統時間、內存、頁錯誤等)
memory_get_usage([$real])返回腳本佔用內存位元組數
memory_get_peak_usage([$real])返回峰值內存佔用

五、版本與標識資訊

函數用途
phpversion([$extension])獲取 PHP 版本或指定擴展版本
zend_version()獲取 Zend Engine 版本
php_logo_guid()獲取 PHP Logo GUID(已棄用,PHP 5.5+ 移除)
zend_logo_guid()獲取 Zend Logo GUID(已棄用)
phpcredits([$flag])輸出貢獻者名單(CREDITS_GROUP、CREDITS_GENERAL 等)
phpinfo([$what])輸出完整 PHP 配置資訊頁面
version_compare($v1, $v2, $op)標準化版本號比較(支援 <, >, =, ge, le 等運算子)

六、常量預定義

函數用途
get_defined_constants([$categorize])返回所有預定義常量陣列,$categorize=true 時按分組返回

七、文件包含追蹤

函數用途
get_included_files()返回已包含/require 文件路徑陣列(含入口腳本)
get_required_files()get_included_files() 別名

八、Magic Quotes 歷史遺留(PHP 5.4+ 已移除)

函數用途
get_magic_quotes_gpc()獲取 magic_quotes_gpc 狀態
get_magic_quotes_runtime()獲取 magic_quotes_runtime 狀態
set_magic_quotes_runtime($setting)設置運行時 magic quotes(已棄用)

實戰使用場景範例

<?php
// 1. 環境檢測:確保運行在 PHP-FPM 且啟用了 opcache
if (php_sapi_name() !== 'fpm-fcgi' || !extension_loaded('Zend OPcache')) {
    die('本應用需 PHP-FPM + OPcache 環境');
}

// 2. 版本兼容:PHP 7.1+ 才支援 void 返回類型
if (version_compare(phpversion(), '7.1.0', '<')) {
    trigger_error('請升級 PHP 至 7.1+', E_USER_ERROR);
}

// 3. 動態調整配置:上傳大文件時臨時放大限制
ini_set('upload_max_filesize', '100M');
ini_set('post_max_size', '100M');
ini_set('max_execution_time', 300);

// 4. 記憶體監控:長時間運行腳本定期檢查
if (memory_get_usage(true) > 256 * 1024 * 1024) {
    // 觸發 GC 或分批處理
    gc_collect_cycles();
}

// 5. 獲取所有常量用於調試輸出
$consts = get_defined_constants(true);
print_r($consts['Core']); // 核心常量

最佳實踐提醒

  • ini_set 只能修改 PHP_INI_USER、PHP_INI_ALL 類別的選項,PHP_INI_SYSTEM、PHP_INI_PERDIR 必須在 php.ini/Web 服務器配置中修改
  • get_cfg_var 讀取的是 php.ini 原始值,不受 ini_set 影響
  • phpinfo() 輸出包含敏感資訊,生產環境嚴禁公開訪問
  • 使用 version_compare 而非字串比較來判斷版本號大小
  • CLI 腳本中 getenv 可讀取系統環境變數,Web 環境下受 variables_order 影響

將此速查表收藏,下次需要「判斷擴展是否載入、動態調整上傳限制、檢查 PHP 版本兼容性」時,即可秒級定位對應函數。

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