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関数も含めて、短くシンプルなコードを書くために役立つ関数です。積極的に利用してみてください。


イベント