本文詳細講解 crc32、crypt、explode、fprintf、hebrev 五個函數的語法、參數、返回值、編碼陷阱與實戰場景。
$str = 'Hello world!';
echo crc32($str); // 有符號整數,可能為負
printf('%u', crc32($str)); // 無符號輸出(推薦)
sprintf('%u', crc32($str)); // 獲取字串
%u 格式化 獲取標準 32 位無符號值。// 現代專案請改用 password_hash() / password_verify()
$hash = password_hash('secret', PASSWORD_DEFAULT); // bcrypt/argon2
if (password_verify('secret', $hash)) { /* 通過 */ }
crypt() 行為依賴作業系統、salt 格式,已不推薦直接使用。password_hash()、password_verify()、password_needs_rehash() 高層 API,自動處理 salt、算法升級、時序安全比對。CRYPT_BLOWFISH、CRYPT_SHA512 等僅指示系統支援度。$str = "a,b,c,d";
$arr = explode(',', $str); // ['a','b','c','d']
$arr = explode(',', $str, 2); // 限制 2 段:['a', 'b,c,d']
$arr = explode(',', $str, -1); // 負數:排除最後 1 段(PHP 5.1+)
separator 不能為空字串,否則返回 false。implode()(陣列合併為字串)、preg_split()(正則分割)。$fp = fopen('log.txt', 'a');
fprintf($fp, "[%s] User %d logged in from %s\n", date('c'), $uid, $ip);
fclose($fp);
%d、%s、%f、%x、%e 等,語法同 sprintf。%1\$s 重複使用同一參數。STDOUT、STDERR、檔案指標、php://memory、php://temp。$hebrew = 'שלום עולם'; echo hebrev($hebrew); // 視覺順序輸出
direction: rtl 或 unicode-bidi 處理雙向文本。function writeLog(string $level, string $message, array $context = []): void {
$fp = fopen('app.log', 'a');
$line = sprintf(
"[%s] %s: %s %s\n",
date('c'),
strtoupper($level),
$message,
$context ? json_encode($context, JSON_UNESCAPED_UNICODE) : ''
);
fwrite($fp, $line);
fclose($fp);
}