在php中清除空格最簡單的就是使用trim()函數,但這個函數往往是達不到我們想要的結果的,特別是字符串有像 \\r\\n這類字符時是無法制作 的,下面我介紹一個完美的方法來解決這個問題。 代碼如下 復制代碼
<?
$str = " This line containstliberal rn use of whitespace.nn";
//去掉開始和結束的空白
$str = trim($str);
//去掉跟隨別的擠在一塊的空白
$str = preg_replace('/s(?=s)/', '', $str);
//最後,去掉非space 的空白,用一個空格代替
$str = preg_replace('/[nrt]/', ' ', $str);
echo "<pre>{$str}</pre>";
?>
上例一步一步的去掉所有的空白。首先我們使用trim()函數來去掉開始和結束的空白。然後,我們使用preg_replace() 去除重復的。s代表任何whitespace 。(?=) 表示向前查找 。它味著只匹配後面有和它本身相同字符的字符。所以這個正則表達式的意思是: "被whitespace 字符跟隨的任何whitespace 字符。" 我們用空白來替換掉,這樣也就去除了,留下的將是唯一的whitespace 字符。
最後, 我們使用另一個正則表達式[nrt]來查找任何殘余的換行符(n), 回車(r), 或制表符(t) 。我們用一個空格來替換這些。