ラボ > PHP:文字関連

php trim()で全角空白も対応

「trim()」は「全角空白」を削除してくれないので、その対応。

作成日:2018-01-09, 更新日:2018-03-20

基本

1.正規表現を使って文頭の空白類削除
2.正規表現を使って文末の空白類削除

function mTrim($str, $character_mask=" \t\n\r\0\x0B" ) {
   $tmpSp = preg_quote($character_mask . ' ');
   $str = preg_replace('/^[' . $tmpSp . ']+/u', '', $str);
   $str = preg_replace('/[' . $tmpSp . ']+$/u', '', $str);
   return $str;
}

※「マルチバイト」対応ってヤツは「m」が使われるので「mTrim」ってしてみた。

よほどなことが無い限り、下記のような感じでOK。

echo mTrim(' あいう ');

「 \t\n\r\0\x0B」について

・" " (ASCII 32 (0x20)), 通常の空白。
・"\t" (ASCII 9 (0x09)), タブ。
・"\n" (ASCII 10 (0x0A)), リターン。
・"\r" (ASCII 13 (0x0D)), 改行。
・"\0" (ASCII 0 (0x00)), NULバイト
・"\x0B" (ASCII 11 (0x0B)), 垂直タブ