2015年4月9日 星期四

【筆記】PHP去除字串的空白字元(字串去空白)

PHP中,是有內建一個trim的方法來去除頭尾的空白,但若要去除字串中的空白呢?這時通常會用字串替換的方式把空白替換成空字串,如下:
//H之前空一格,o與W之間有兩個空格,在d後面又有一個空格
$str = ' Hello  World ';
echo 'head' . str_replace(' ', '', $str) . 'tail';
結果為:
headHelloWorldtail
由上面的結果可知,若在PHP中只是要去掉空格,使用str_replace就夠了,但若在字串中除了空格,還有其他如\t\v\n等的空白字元呢?如下:
//H前面一個空格,但o與W之間還有d後面是Tab
$str = ' Hello World ';
echo 'head' . str_replace(' ', '', $str) . 'tail';
若依str_replace的方法,這裡只能把空白去掉,而其他字元仍會留著,如下面結果:
headHello World tail
這時,要使用preg_replace來搭配正規表示式去除:
echo 'head' . preg_replace('/\s+/', '', $str) . 'tail';
結果為:
headHelloWorldtail
上列的\s+表示只要是有一個以上的空白字元就符合被替換的條件,其意義和符合的字元,可以參考這裡

參考資料

沒有留言: