前言
本文匯總 PHP 核心擴展的常用函數分類速查表,涵蓋字符串處理、數組操作、數學計算、日期時間、文件系統、數據庫交互、會話控制等高頻場景,適合開發時快速查閱。函數名採用標準大小寫,參數簡述以官方文檔為準。
分類速查表
1. 字符串處理
| 函數 | 說明 |
strlen() | 獲取字符串長度(字節數) |
mb_strlen() | 多字節編碼下獲取字符數 |
substr() | 截取子串(支援負偏移) |
mb_substr() | 多字節安全截取 |
strpos()/stripos() | 查找子串首次出現位置(大小寫敏感/不敏感) |
str_replace() | 字符串替換(支援數組批量) |
preg_match()/preg_replace() | 正則匹配/替換(PCRE) |
explode() | 按分隔符分割字符串為數組 |
implode() | 數組元素拼接為字符串 |
trim()/ltrim()/rtrim() | 去除首尾空白字符 |
htmlspecialchars() | 特殊字符轉 HTML 實體(防 XSS) |
urlencode()/urldecode() | URL 編碼/解碼 |
md5()/sha1()/hash() | 哈希摘要計算 |
base64_encode()/base64_decode() | Base64 編解碼 |
json_encode()/json_decode() | JSON 編解碼 |
2. 數組操作
| 函數 | 說明 |
array()/[] | 創建數組 |
count()/sizeof() | 統計元素個數 |
array_push()/array_pop() | 棧操作:壓入/彈出 |
array_shift()/array_unshift() | 隊列操作:移除/插入首元素 |
array_merge() | 合併數組(字符串鍵覆蓋,數字鍵重新索引) |
array_combine() | 用一個數組作鍵,另一個作值創建關聯數組 |
array_keys()/array_values() | 獲取所有鍵/值 |
in_array() | 檢查值是否存在 |
array_key_exists() | 檢查鍵是否存在 |
array_search() | 搜索值返回鍵 |
sort()/rsort() | 值排序(重新索引) |
asort()/arsort() | 值排序(保持鍵關聯) |
ksort()/krsort() | 鍵排序 |
array_map() | 回調函數處理每個元素 |
array_filter() | 回調過濾元素 |
array_reduce() | 回調歸約為單一值 |
array_walk() | 遍歷修改元素(引用傳遞) |
array_column() | 提取多維數組單列(PHP 5.5+) |
array_unique() | 去除重複值 |
3. 數學計算
| 函數 | 說明 |
abs() | 絕對值 |
ceil()/floor()/round() | 向上/向下/四捨五入取整 |
rand()/mt_rand() | 隨機整數(mt_ 速度更快) |
min()/max() | 最小/最大值 |
pow()/sqrt() | 冪/平方根 |
pi() | 圓周率常量 |
sin()/cos()/tan() | 三角函數 |
bcadd()/bcsub()/bcmul()/bcdiv() | 高精度浮點數加減乘除 |
bccomp() | 高精度比較 |
base_convert() | 進制轉換(2-36) |
decbin()/dechex()/decoct() | 十進制轉二/十六/八進制 |
bindec()/hexdec()/octdec() | 反向轉換 |
4. 日期時間
| 函數 | 說明 |
time() | 當前 Unix 時間戳 |
microtime(true) | 帶微秒的時間戳(浮點數) |
date() | 格式化時間戳為字符串 |
strtotime() | 解析英文文本日期為時間戳 |
mktime() | 從日期參數獲取時間戳 |
getdate() | 時間戳轉關聯數組 |
checkdate() | 驗證日期合法性 |
DateTime 類 | 面向對象日期操作(時區、格式化、加減運算) |
DateInterval | 時間間隔對象 |
DatePeriod | 日期周期迭代器 |
5. 文件系統
| 函數 | 說明 |
fopen()/fclose() | 打開/關閉文件句柄 |
fread()/fwrite() | 讀寫文件內容 |
file_get_contents()/file_put_contents() | 一次性讀寫整個文件 |
file() | 讀入數組(每行一元素) |
copy()/rename()/unlink() | 複製/重命名/刪除 |
mkdir()/rmdir() | 創建/刪除目錄 |
scandir()/glob() | 掃描目錄/模式匹配文件 |
filesize()/filemtime() | 文件大小/修改時間 |
is_file()/is_dir()/is_readable()/is_writable() | 類型與權限檢查 |
realpath() | 獲取絕對路徑(解析符號鏈接) |
pathinfo() | 解析路徑信息(目錄名、文件名、擴展名) |
tempnam()/tmpfile() | 創建臨時文件 |
flock() | 文件鎖(共享/排他/非阻塞) |
6. 數據庫(MySQLi / PDO)
MySQLi 面向過程風格
| 函數 | 說明 |
mysqli_connect() | 建立連接 |
mysqli_query() | 執行 SQL |
mysqli_prepare() | 預處理語句 |
mysqli_stmt_bind_param() | 綁定參數 |
mysqli_stmt_execute() | 執行預處理 |
mysqli_fetch_assoc() | 獲取關聯數組行 |
mysqli_insert_id() | 獲取自增 ID |
mysqli_affected_rows() | 影響行數 |
mysqli_close() | 關閉連接 |
PDO(推薦)
| 方法 | 說明 |
new PDO() | 構造連接(DSN、用戶、密碼、屬性) |
prepare() | 預處理 |
execute() | 執行 |
fetch()/fetchAll() | 獲取結果 |
lastInsertId() | 自增 ID |
beginTransaction()/commit()/rollBack() | 事務控制 |
setAttribute() | 設置屬性(錯誤模式、默認獲取模式等) |
7. 會話與 Cookie
| 函數 | 說明 |
session_start() | 啟動/恢復會話 |
$_SESSION | 超全局會話數組 |
session_destroy() | 銷毀會話數據 |
session_regenerate_id() | 重新生成 Session ID(防固定攻擊) |
setcookie() | 設置 Cookie |
$_COOKIE | 獲取 Cookie |
8. 其他高頻函數
header() — 發送原始 HTTP 頭(重定向、Content-Type、緩存控制)
die()/exit() — 輸出信息並終止腳本
isset()/empty()/is_null() — 變量狀態檢查
var_dump()/print_r() — 調試輸出變量結構
error_reporting() — 設置錯誤報告級別
ini_set()/ini_get() — 運行時修改/讀取配置
function_exists()/extension_loaded() — 檢查函數/擴展可用性
call_user_func()/call_user_func_array() — 動態調用回調
使用建議
- 優先使用 PDO 而非
mysql_*(已移除)或 mysqli_* 面向過程風格。
- 字符串處理多字節場景(中文)必須用
mb_* 系列,並在腳本開頭 mb_internal_encoding('UTF-8')。
- 日期時間操作推薦
DateTime 類,避免 strtotime 邊界歧義。
- 高精度金額計算務必用
bcmath 擴展函數,禁用浮點數直接運算。
- 文件操作大文件時使用流式讀寫,防止內存耗盡。