今回は余分な空白文字を取り除くtrim関数について紹介します。
trim関数の使い方
1 |
trim(文字列 [,取り除く文字]) |
文字列の先頭と末尾から、指定した文字列または空白文字を取り除きます。trim関数で空白文字と見なされるのは" \t\n\r\0\x0B"なので、タブや改行を含みます。「取り除く文字」を指定しない場合は、これらの空白文字が削除されます。
また、文字列の中に含まれる空白文字は削除されません。
サンプルコード
空白文字を分かりやすくするため、var_dump関数で表示します。
コード
1 2 3 4 5 |
<?php $string = ' abc d e f '; $trimed = trim($string); var_dump($trimed); |
実行結果
1 |
string(9) "abc d e f" |
先頭と末尾の空白文字が削除されています。
ltrim, rtrim
1 2 |
ltrim(文字列 [,取り除く文字]) rtrim(文字列 [,取り除く文字]) |
trim関数のバリエーションとして先頭だけを対象にするltrim関数と、右側(末尾)だけを対象にするrtrim関数もあります。どちらの使い方もtrim関数と同じです。
サンプルコード
1 2 3 |
<?php var_dump(ltrim(' abc ')); var_dump(rtrim(' abc ')); |
実行結果
1 2 |
string(5) "abc " (左側の空白のみ取り除かれています) string(5) " abc" (右側の空白のみ取り除かれています) |
すべての空白を取り除く方法
trim関数, ltrim関数, rtrim関数はいずれも中間の空白を残しますが、全ての空白文字(半角スペース)を取り除くときは汎用的な方法を使ってください。ここではstr_replace関数を使う方法を紹介します。
コード
1 2 3 4 5 |
<?php $string = ' abc d e f '; $trimed = str_replace(" ", "", $string); var_dump($trimed); |
実行結果
1 |
string(6) "abcdef" |
正規表現を扱うpreg_replace関数でも同じことができますが、単純な半角スペースの置換の場合はより高速に処理できるstr_replaceを使ったほうが良いでしょう。
また、trimの機能はpreg_replace関数のような文字列の置き換え関数でも実現可能ですが、より簡潔に書くことができます。
ltrim関数、rtrim関数も含めて、短くシンプルなコードを書くために役立つ関数です。積極的に利用してみてください。