字符串處理
| 函數 | 用途 | 示例 |
| trim/ltrim/rtrim | 去除首尾/左/右空白或指定字符 | trim($str, "\t\n\r\0\x0B") |
| strlen/mb_strlen | 獲取字節/字符長度 | mb_strlen($str, 'UTF-8') |
| strpos/stripos | 查找子串首次出現位置(大小寫敏感/不敏感) | strpos($haystack, $needle) |
| substr/mb_substr | 截取子串 | mb_substr($str, 0, 10, 'UTF-8') |
| str_replace | 替換所有匹配 | str_replace(['a','b'], ['A','B'], $str) |
| preg_replace | 正則替換 | preg_replace('/\s+/', ' ', $str) |
| explode/implode | 分割/合併字符串與數組 | implode(',', $arr) |
| sprintf/printf | 格式化輸出/返回 | sprintf('%04d', $num) |
| md5/sha1/hash | 哈希摘要 | hash('sha256', $data) |
| htmlspecialchars | 轉義 HTML 實體,防 XSS | htmlspecialchars($str, ENT_QUOTES, 'UTF-8') |
| nl2br | 換行符轉 <br> | nl2br($text) |
數組操作
| 函數 | 用途 | 備註 |
| count | 元素個數 | 避免在循環中重複調用 |
| array_push/pop | 棧式壓入/彈出(末尾) | 返回新長度/彈出值 |
| array_unshift/shift | 隊列式壓入/彈出(首部) | 鍵名重新索引 |
| array_merge | 合併數組 | 字符串鍵後覆蓋前,數字鍵重新索引 |
| array_combine | 兩數組組成鍵值對 | 鍵數組與值數組長度必須一致 |
| array_keys/values | 提取所有鍵/值 | |
| array_flip | 交換鍵與值 | 值必須唯一 |
| array_reverse | 反轉順序 | 保留鍵名可傳 true |
| array_slice | 切片(不修改原數組) | array_slice($arr, 0, 5) |
| array_splice | 裁剪並可替換(修改原數組) | array_splice($arr, 1, 2, ['x']) |
| array_map/filter/walk | 回調處理每個元素 | 函數式風格 |
| array_unique | 去重(保留首次鍵名) | |
| sort/rsort/asort/ksort | 各類排序 | 直接修改原數組,返回 bool |
| shuffle | 打亂順序 | 重新索引數字鍵 |
| in_array/array_key_exists | 值/鍵存在性檢查 | 大數組用 key 更快 |
| extract | 數組導入符號表 | 慎用,可能覆蓋變量 |
文件與目錄
file_get_contents/put_contents:讀/寫整個文件
fopen/fread/fwrite/fclose:流式操作大文件
file:讀文件為數組,每行一元素
opendir/readdir/closedir:目錄遍歷
glob:模式匹配文件列表
pathinfo/parse_url/parse_str:路徑/URL 解析
is_file/is_dir/is_readable/is_writable:屬性檢查
mkdir/rmdir/unlink/rename/copy:增刪改
filesize/filemtime/filectime:元信息
日期時間
<?php
time(); // 當前時間戳
date('Y-m-d H:i:s'); // 格式化輸出
strtotime('+1 day'); // 相對時間轉戳
DateTime 類: // 面向對象,支持時區
$dt = new DateTime('now', new DateTimeZone('Asia/Shanghai'));
echo $dt->format('c'); // ISO 8601
?>
MySQL 常用函數(mysqli 推薦)
<?php
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$mysqli->set_charset('utf8mb4');
$stmt = $mysqli->prepare('SELECT id, name FROM users WHERE email = ?');
$stmt->bind_param('s', $email);
$stmt->execute();
$stmt->bind_result($id, $name);
while ($stmt->fetch()) { /* ... */ }
$stmt->close();
$mysqli->close();
?>
其他實用函數
var_dump/print_r:調試輸出
json_encode/decode:JSON 序列化
serialize/unserialize:PHP 原生序列化
base64_encode/decode:Base64 編解碼
urlencode/urldecode/rawurlencode:URL 編碼
header:發送 HTTP 頭(重定向、下載、狀態碼)
session_start/regenerate_id/destroy:會話管理
setcookie:設置 Cookie
error_reporting/ini_set/set_error_handler:錯誤控制