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

21 個被忽視但超實用的 PHP 函數大盤點

     編輯:PHP 綜合知識

前言

PHP 內置函數超過 5000 個,許多強大卻鮮為人知。本文精選 21 個高價值函數,涵蓋系統監控、二進制處理、日期、國際化、瀏覽器識別、調試、排序、文件遍歷、驗證等場景。

函數清單

1. sys_getloadavg() — 系統負載

$load = sys_getloadavg();
if ($load[0] > 80) {
    header('HTTP/1.1 503 Too busy');
    die('Server too busy. Try later.');
}
// Windows 不支持,可用 /proc/loadavg 兼容

用途:高負載時拒絕請求,保護服務器。

2. pack() / unpack() — 二進制打包

$hash = pack("H*", md5("password")); // 16 進制字符串 → 二進制
// PHP 5.4+ 直接用
$hash = md5("password", true); // 返回原始二進制

節省存儲空間,網絡傳輸更緊湊。

3. cal_days_in_month() — 月天數

$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); // 當月天數

替代手寫閏年邏輯。

4. _() / gettext() — 國際化

setlocale(LC_ALL, 'de_DE');
bindtextdomain("myApp", "./locale");
textdomain("myApp");
echo _("Have a nice day"); // 自動翻譯

WordPress __()、_e() 即基於此。

5. get_browser() — 瀏覽器能力識別

$browser = get_browser(null, true);
echo $browser['browser']; // Chrome, Firefox...
echo $browser['version']; // 版本號

需 browscap.ini,免去解析 User-Agent 正則。

6. debug_print_backtrace() — 調用堆棧

function foo() { bar(); }
function bar() { debug_print_backtrace(); }
foo();

無需 Xdebug 即可快速定位調用鏈。

7. natsort() — 自然排序

$items = ["100 apples", "5 apples", "110 apples", "55 apples"];
sort($items);    // 字典序:100, 110, 5, 55
natsort($items); // 自然序:5, 55, 100, 110

符合人類直覺的排序。

8. glob() — 文件模式匹配

foreach (glob("*.php") as $file) echo "$file\n";
// 僅目錄
$dirs = array_filter(glob($path.'*'), 'is_dir');
// 或用 GLOB_ONLYDIR 标志
$dirs = glob($path.'*', GLOB_ONLYDIR);

比 opendir/readdir 更簡潔。

9. filter_var() — 數據驗證/過濾

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)); // bool(true)
var_dump(filter_var('abc', FILTER_VALIDATE_BOOLEAN)); // bool(false)
var_dump(filter_var('1', FILTER_VALIDATE_BOOLEAN)); // bool(true)

內置郵箱、URL、IP、布爾等驗證,PHP 5.2+ 可用。

其他值得關注的函數

  • stream_get_contents()、stream_context_create() — 流操作
  • password_hash()/password_verify() — 密碼加密(PHP 5.5+)
  • array_column() — 提取數組列(PHP 5.5+)
  • json_encode()/json_decode() 配合 JSON_THROW_ON_ERROR(PHP 7.3+)
  • fnmatch() — 文件名模式匹配
  • str_contains()/str_starts_with()/str_ends_with()(PHP 8+)

結語

定期瀏覽 PHP 函數參考,避免重複造輪子,發現更優雅的解決方案。

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