PHP 擁有龐大的內建函數庫,熟悉高頻函數的參數、回傳值、邊界情況能大幅減少查閱文件時間。本文整理實務最常用的字串操作、陣列操作、檔案 I/O、日期時間、JSON 編解碼、檔案引入六大類,附官方原型、參數說明與實戰提醒。
🔗 https://php.net/manual/zh — 必備書籤,含使用者註釋與範例。
strpos($haystack, $needle, $offset = 0) — 尋找首次出現位置false。if (strpos(...) !== false),避免位置 0 被視為 false。$needle 非字串會被轉為 ASCII 碼字元。$offset 不可為負數(不同於 strrpos)。substr($string, $start, $length = null) — 截取子字串$start 正數:從左數;負數:從右數(如 -1 為最後一字元)。$length 省略:截取到結尾;正數:長度;負數:倒數第 N 字元前停止。false。str_split($string, $split_length = 1) — 字串轉陣列$split_length < 1 回傳 false。explode($delimiter, $string, $limit = PHP_INT_MAX) — 分隔字串$delimiter 空字串會回傳 false。$limit > 0:最多回傳 N 元素,最後一元素含剩餘內容。$limit < 0:排除最後 N 元素。$limit = 0 視同 1。preg_split($pattern, $subject, $limit = -1, $flags = 0) — 正則分割PREG_SPLIT_NO_EMPTY:忽略空元素。PREG_SPLIT_DELIM_CAPTURE:保留捕獲群組。PREG_SPLIT_OFFSET_CAPTURE:回傳 [字串, 位移] 陣列。array(...) / [] — 建立陣列$arr = ['key1' => 'val1', 'key2' => 'val2']; // 短語法 PHP 5.4+
$arr = array(0 => 10, 'name' => 'Tom'); // 經典語法
array_push($array, $var, ...) — 陣列尾部壓入(堆疊)$array 為引用傳遞(&$array)。$array[] = $var(單元素時效能更好)。| 語句 | 找不到檔案行為 | 回傳值處理 | 適用場景 |
|---|---|---|---|
include | 發出 E_WARNING,腳本繼續 | 可接收被引入檔 return 值 | 模板、非核心模組 |
require | 拋出 E_COMPILE_ERROR,腳本中止 | 同上 | 核心設定、必要類別 |
include_once | 同 include,但重複引入不執行 | 同上 | 防止函數/類別重複定義 |
require_once | 同 require,但重複引入不執行 | 同上 | 框架核心載入器 |
路徑解析規則:絕對/相對路徑 → 忽略 include_path;單純檔名 → 依 include_path → 當前腳本目錄 → 工作目錄。
time() — 取得 Unix 時間戳(秒)echo time(); // 1700000000
date($format, $timestamp = null) — 格式化輸出$timestamp 省略預設 time()。Y 四位年、m 雙位月、d 雙位日、H 24時、i 分、s 秒。echo date('Y-m-d H:i:s'); // 2024-01-15 14:30:00
date_default_timezone_get() / set() — 時區管理date_default_timezone_set('Asia/Shanghai'); // 中國大陸標準時區
echo date_default_timezone_get(); // Asia/Shanghai
bootstrap.php)統一設定。json_encode($value, $options = 0, $depth = 512) — 變量轉 JSON 字串resource 外所有型別;輸入必須為 UTF-8。$options:JSON_UNESCAPED_UNICODE(不轉義中文)、JSON_UNESCAPED_SLASHES、JSON_PRETTY_PRINT(美化縮排)。false。$data = ['name' => '中文', 'id' => 1];
echo json_encode($data, JSON_UNESCAPED_UNICODE); // {"name":"中文","id":1}
json_decode($json, $assoc = false, $depth = 512, $options = 0) — JSON 字串轉 PHP 變量$assoc = true:回傳關聯陣列;false(預設)回傳 stdClass 物件。JSON_BIGINT_AS_STRING:大整數以字串呈現避免精度損失。$json = '{"name":"中文","id":1}';
$arr = json_decode($json, true); // ['name' => '中文', 'id' => 1]
fopen($filename, $mode, $use_include_path = false, $context = null) — 開啟檔案/URL| Mode | 說明 | 指標位置 | 建檔/截斷 |
|---|---|---|---|
r | 唯讀 | 檔頭 | 否 |
r+ | 讀寫 | 檔頭 | 否 |
w | 唯寫 | 檔頭 | 是(截斷/建檔) |
w+ | 讀寫 | 檔頭 | 是 |
a | 唯寫 | 檔尾 | 是(建檔) |
a+ | 讀寫 | 檔尾 | 是 |
x | 建檔唯寫 | 檔頭 | 檔案存在則失敗 |
x+ | 建檔讀寫 | 檔頭 | 同上 |