概要
trim系の関数は、指定した文字列の先頭・末尾のスペースや区切り文字など以下の文字を取り除く。
" "
(ASCII 32 (0x20)), 通常の空白"\t"
(ASCII 9 (0x09)), タブ"\n"
(ASCII 10 (0x0A)), リターン"\r"
(ASCII 13 (0x0D)), 改行"\0"
(ASCII 0 (0x00)), NULバイト"\v"
(ASCII 11 (0x0B)), 垂直タブ
全角のスペースが削除されない、全角文字の場合うまく機能しないなどの制約がある。半角・全角のスペース削除や全角文字列の削除はうまく機能しない。
基本形
trim()
は先頭と末尾を、ltrim()
は先頭、rtrim()
は末尾をトリムする。
- 先頭/末尾に連続した対象文字は全て削除される
- 他の文字に挟まれた先頭/末尾以外の対象文字は削除されない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<pre> <?php $s = "\n a b c \n"; echo '|', $s, '|', "\n"; // | // a b c // | echo '|', trim($s), '|', "\n"; // |a b c| echo '|', ltrim($s), '|', "\n"; // |a b c // | echo '|', rtrim($s), '|', "\n"; // | // a b c| ?> </pre> |
全角スペースは削除されない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<pre> <?php $s = ' a b c '; echo '|', $s, '|', "\n"; // | a b c | echo '|', trim($s), '|', "\n"; // | a b c | echo '|', ltrim($s), '|', "\n"; // | a b c | echo '|', rtrim($s), '|', "\n"; // | a b c | ?> </pre> |
指定した文字列でトリム
第2引数でトリムする文字列を指定できる。1文字である必要はない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<pre> <?php $s = 'abcdabcdab'; echo $s, "\n"; // abcdabcdab echo trim($s, 'ab'), "\n"; // cdabcd echo ltrim($s, 'ab'), "\n"; // cdabcdab echo rtrim($s, 'ab'), "\n"; // abcdabcd ?> </pre> |
全角文字はうまく動作しない
以下の例では、末尾文字列は削除されているが、先頭文字列はうまく削除されていない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<pre> <?php $s = 'いろはにいろはにいろ'; echo $s, "\n"; // いろはにいろはにいろ echo trim($s, 'いろ'), "\n"; // �にいろはに echo ltrim($s, 'いろ'), "\n"; // �にいろはにいろ echo rtrim($s, 'いろ'), "\n"; // いろはにいろはに ?> </pre> |