萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 移除字串首尾空白字元的方法:trim、ltrim、rtrim 與 mb_ereg_replace

PHP 去除字串首尾空白的多種做法

處理使用者輸入或外部資料時,常需移除字串首尾的空白字元(空格、Tab、換行等)。PHP 內建 trim、ltrim、rtrim 三個函數最常用,若需支援多位元組字元(如中文全形空格),可搭配 mb_ereg_replace。

方法一:內建 trim 系列函數(推薦)

  • trim($str):同時移除首尾空白。
  • ltrim($str):僅移除左側(開頭)空白。
  • rtrim($str):僅移除右側(結尾)空白。
  • 預設移除字元:" " (空格)、"\t" (Tab)、"\n" (換行)、"\r" (歸位)、"\0" (NULL)、"\x0B" (垂直定位鍵)。
  • 可指定第二參數自訂移除字元集合。

範例

<?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 正則替換(支援中文全形空格)

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()。
  • 資料含全形空格或特殊 Unicode 空白字元時,改用 mb_ereg_replace 或 preg_replace('/^\\s+|\\s+$/u', '', $str)。
  • 同一問題常有多種解法,依專案編碼與需求選擇即可。
copyright © 萬盛學電腦網 all rights reserved