PHP 擁有龐大的內建函數庫,許多開發者只使用核心功能,卻錯過了許多能簡化代碼、提升性能的「隱藏寶石」。本文整理 10 個實用但不常見的函數,助你寫出更優雅、高效的代碼。
此函數返回一個包含三個元素的陣列,分別代表系統過去 1、5、15 分鐘的平均負載。在高併發場景下,可在腳本啟動時檢查負載,若過高則主動退出,避免拖垮整台服務器。
$load = sys_getloadavg();
if ($load[0] > 80) {
die('系統負載過高,請稍後再試');
}
注意:此函數在 Windows 環境下不可用。
md5() 返回 32 位十六進制字串,使用 pack('H*', $md5) 可將其轉為 16 位二進制字串,儲存到資料庫 BINARY(16) 欄位可節省一半空間。
無需手寫邏輯判斷閏年,直接獲取指定年月的天數:
$days = cal_days_in_month(CAL_GREGORIAN, 2, 2024); // 返回 29 (閏年)
WordPress 開發者熟悉的雙函數,結合 gettext 擴展實現國際化 (i18n)。_() 返回翻譯字串,_e() 直接輸出。配合 .po/.mo 翻譯文件,輕鬆支援多語言切換。
需配合 php_browscap.ini 使用。可判斷瀏覽器類型、版本、是否支援 JavaScript、CSS 等特性。但注意:它基於 User-Agent 判斷,若用戶關閉 JS,函數無法感知;判斷瀏覽器類型與作業系統較準確。
在複雜遞歸或回調中,直接輸出完整調用鏈,快速定位邏輯錯誤。輸出格式包含文件路徑、行號、函數名,比手動 var_dump 高效得多。
返回單詞的「聲碼」,發音相似的單詞擁有相同聲碼。適用於搜尋建議、拼寫校正、姓名匹配等場景(如 "Smith" 和 "Smyth" 同碼)。
標準排序將 "100" 排在 "5" 前面,natsort() 則按數值大小排序:
$items = ["100 apples", "5 apples", "110 apples", "55 apples"]; natsort($items); // 結果: 5 apples, 55 apples, 100 apples, 110 apples
返回將字串 A 轉為字串 B 所需的最少插入、刪除、替換次數。核心應用:搜尋「您是否要找...」、拼寫檢查、相似度比對。
$dict = ['php', 'javascript', 'css'];
$input = 'japhp';
$best = $dict[0];
$minDist = levenshtein($input, $dict[0]);
foreach ($dict as $word) {
$dist = levenshtein($input, $word);
if ($dist < $minDist) { $minDist = $dist; $best = $word; }
}
echo "Did you mean '$best'?"; // 輸出: php
替代繁瑣的 opendir/readdir/closedir 組合,支援通配符模式匹配:
foreach (glob("*.php") as $file) {
echo $file . "\n";
}
// 遞歸查找: glob("**/*.php", GLOB_BRACE)
掌握這些函數,能讓你的 PHP 代碼更簡潔、健壯、專業。建議收藏備查,實戰中靈活運用。