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