PHP 的 trim() 函數不僅能去除空白字元,還支援自定義字元清單,是處理使用者輸入、資料清洗的利器。
trim(string $string, string $characters = " \t\n\r\0\x0B"): string
$string:待處理字串$characters:選填,指定要去除的字元清單(預設為空白字元:空格、Tab、換行、回車、Null、垂直製表)<?php
$a = "(a,b,c,)";
echo $a . "<br/>"; // 輸出:(a,b,c,)
$b = trim($a, "()"); // 去除首尾的 '(' 或 ')'
echo $b . "<br/>"; // 輸出:a,b,c,
$c = trim($a, "(,)"); // 去除首尾的 '('、',' 或 ')'
echo $c . "<br/>"; // 輸出:a,b,c
?>
輸出結果:
(a,b,c,) a,b,c, a,b,c
trim() 會同時檢查字串首尾,只要字元在清單中就會被移除,直到遇到不在清單的字元為止。"(,)" 代表三個獨立字元:(、,、),而非子字串。str_replace() 或正則表達式。SQL 標準提供三種去除空白的函數,行為與 PHP 略有不同:
| 函數 | 功能 | 適用場景 |
|---|---|---|
TRIM([BOTH|LEADING|TRAILING] [chars FROM] str) | 去除首尾指定字元(預設空白) | 通用清洗 |
LTRIM(str) | 僅去除左側空白 | 左對齊處理 |
RTRIM(str) | 僅去除右側空白 | 右對齊處理 |
-- 標準 TRIM(去除首尾空白)
SELECT TRIM(' hello world '); -- 'hello world'
-- 指定字元
SELECT TRIM(BOTH '()' FROM '(hello)'); -- 'hello'
-- 僅左側
SELECT LTRIM(' hello'); -- 'hello'
-- 僅右側
SELECT RTRIM('hello '); -- 'hello'
SET NAMES utf8mb4),避免多位元組字元被誤判。trim() 僅接受字串,傳入非字串會觸發警告;SQL 函數隱含轉型,但建議顯式 CAST。trim(),防止前後空白導致查詢失敗或重複資料。PHP trim() 以字元清單機制提供極大彈性,適合複雜格式清洗;SQL TRIM/LTRIM/RTRIM 則專注於空白字元的標準化處理。兩者結合使用,能構建乾淨、可靠的資料流管道。