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

PHP 移除字串首尾空白:trim()、ltrim()、rtrim()、chop() 完整比較

     編輯:PHP 相關知識

前言

PHP 提供四個移除空白字元的函數,分別針對字串兩端、左端、右端。本文詳細比較用法、預設字元清單與多位元組注意事項。

函數對照表

基本範例

<?php
$text = "\t\t jb51.net! \t\t ";

echo "ltrim:  [" . ltrim($text)  . "]\n"; // [jb51.net!      ]
echo "rtrim:  [" . rtrim($text)  . "]\n"; // [        jb51.net!]
echo "trim:   [" . trim($text)   . "]\n"; // [jb51.net!]
echo "chop:   [" . chop($text)   . "]\n"; // [        jb51.net!]
?>

自訂移除字元清單

<?php
$str = "---Hello World---";

// 移除連字號
echo trim($str, '-') . "\n"; // Hello World

// 移除多種字元
echo trim($str, '-Hd') . "\n"; // ello Worl (移除 H, d, -)

/* 注意:第二參數為字元「清單」,非字串整體。
   trim($str, 'ab') 會移除所有 a 和 b,而非 "ab" 子字串。 */
?>

多位元組字元(UTF-8)注意

  • PHP 7+ trim() 等函數支援 UTF-8 多位元組字元,但第二參數若包含多位元組字元,可能無法正確匹配(視為單獨位元組)。
  • 需移除全形空白 U+3000 等:trim($str, " \t\n\r\0\x0B\x{3000}")(需雙引號解析 Unicode 逸出)。
  • 複雜情境建議用 preg_replace('/^[\s\p{Z}]+|[\s\p{Z}]+$/u', '', $str) 以 Unicode 空白屬性匹配。

常見誤區

  • ❌ 以為 trim() 會移除字串「中間」的空白 → 僅移除首尾。
  • ❌ chop() 在某些語言意為「截斷」,PHP 中是 rtrim() 別名,易混淆,建議統一用 rtrim()。
  • ❌ 移除特定子字串用 trim($str, 'abc') → 實際移除所有 a、b、c 字元。

總結

掌握 trim/ltrim/rtrim 三大核心函數與自訂字元清單語法,即可處理 90% 空白清理需求。多位元組環境注意字元清單編碼,複雜情境改用正則。希望本文對您的 PHP 程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數別名移除位置預設移除字元
trim()-兩端" \t\n\r\0\x0B" (空白、Tab、換行、CR、Null、垂直定位)
ltrim()-左端(開頭)
rtrim()chop()右端(結尾)
chop()rtrim()右端(結尾)