處理使用者輸入或外部資料時,常需移除字串首尾的空白字元(空格、Tab、換行等)。PHP 內建 trim、ltrim、rtrim 三個函數最常用,若需支援多位元組字元(如中文全形空格),可搭配 mb_ereg_replace。
trim($str):同時移除首尾空白。ltrim($str):僅移除左側(開頭)空白。rtrim($str):僅移除右側(結尾)空白。<?php $str = " 去除前後空格 "; echo "原始長度: " . strlen($str) . "<br>"; echo "ltrim 後: " . strlen(ltrim($str)) . "<br>"; echo "rtrim 後: " . strlen(rtrim($str)) . "<br>"; echo "trim 後: " . strlen(trim($str)) . "<br>"; echo "結果: [" . trim($str) . "]"; ?>
mb_ereg_replace 為多位元組安全的正則替換函數,可處理全形空格 (U+3000) 等。
<?php
$str = " 網頁制作教程 www.111cn.net ";
// 移除開頭空白 (含半形/全形空格)
$str = mb_ereg_replace('^[ \\s]+', '', $str);
// 移除結尾空白
$str = mb_ereg_replace('[ \\s]+$', '', $str);
// 將中間空格替換為換行 (示範用)
echo mb_ereg_replace(' ', "\n", $str);
?>
說明: 模式 ^[ \\s]+ 匹配開頭的半形空格或空白字元;[ \\s]+$ 匹配結尾。若需更完整的 Unicode 空白支援,可使用 \\p{Zs} (需 PHP 7.3+ 與 u 修飾符)。
trim() 最簡潔高效。ltrim() / rtrim()。mb_ereg_replace 或 preg_replace('/^\\s+|\\s+$/u', '', $str)。