PHPで空白を消すtrim関数の使い方!(trim, ltrim, rtrim)

PHP

PHPで空白を消すときに使用する、trim関数の使い方と関連関数の説明を記載しています。
下記の関数の使い方とサンプルコードを書いています。

trim
ltrim
rtrim

trim関数と同じように、ltrim・rtrim関数も使えますが、削除対象になる場所が違います。
サンプルコードの検証にはPHP8を使っています。

trim関数の使い方

trim関数を文字列に対して使うと、文字列の先頭および末尾の余白を消してくれます。
例えば、下記のように使います。

<?php
echo trim(" apple "); // 結果「apple」

このようにすると、appleの前と後にある半角スペースが削除されて、結果として「apple」が出力されます。
文字列を直接渡していますが、変数を渡しても良いです。スペースが続く間、前後のスペースが削除されます。

つまりスペースを取り除きたい文字列を渡すと、文字列の前後からスペースを取り除いた結果が返ってきます。
※全角スペースは削除できません。マルチバイトに対応していなくて文字化けします。

もう一つの使い方として、第2引数を指定することが可能です。
例えば、下記のように使います。

<?php
echo trim("dddapple color red ddd", 'd'); // 結果「apple color red 」

第2引数に’d’を指定しました。
第2引数を指定すると、指定した文字のみを文字列の先頭と末尾から削除してくれます。

文字列の’d’が先頭と末尾から削除され、結果として「apple color red 」となります。
この場合は、先頭と末尾の指定された文字のみが削除されるので、スペースは無視されます。

複数の文字を対象に削除する場合は、文字を文字列にして複数渡します。
下記のように使ってみます。

<?php
$hello = "Hello World";
echo trim($hello, "Hdle"); // 結果「o Wor」

渡した文字列の「Hdle」に対応する文字が、第1引数の文字列から削除されます。
前後から対象の文字が全て削除され、結果として「o Wor」となります。

trim関数についての公式ドキュメントはこちらです。

ltrim関数の使い方

ltrim関数は、文字列の先頭だけ空白を取り除く関数です。
「l」なので「left trim」だと思います。
trimは先頭と末尾から空白を削除しましたが、ltrimは先頭のみが処理対象になります。

例えば、下記のように使用します。

<?php
echo ltrim("   banana   "); // 結果「banana   」

先頭のスペースが削除されて、結果として「banana   」が返ってきます。

こちらも第2引数を渡すことが可能です。
例えば、下記のように使います。

<?php
echo ltrim("aaa banana aaa", 'a'); // 結果「 banana aaa」

第2引数に’a’を指定しました。
trim関数と同様にして、削除されますが先頭のみが対象になります。結果として「 banana aaa」となります。

複数の文字を対象にした場合です。

<?php
$hello = "Hello World";
echo ltrim($hello, "Hdle"); // 結果「o World」

先頭の方だけが対象となるので、上記の結果は「o World」となります。

ltrim関数についての公式ドキュメントはこちらです。

rtrim関数の使い方

rtrim関数は、文字列の末尾だけ空白を取り除く関数です。
こちらは「r」なので「right trim」だと思います。
既に名前から察せるかと思いますが、rtrimは文字列の末尾のみが削除処理対象になります。

例えば、下記のように使用します。

<?php
echo rtrim("   grape   "); // 結果「   grape」

末尾のスペースが削除されて、結果として「   grape」が返ってきます。

こちらもtrim, ltrimと同様に第2引数が渡せます。
下記のように使うことができます。

<?php
echo rtrim("hhhgrapehhhh", 'h'); // 結果「hhhgrape」

第2引数に’h’を指定しました。
末尾のみが削除対象になるので、結果として「hhhgrape」が返ってきます。

複数の文字を対象にした場合です。

<?php
$hello = "Hello World";
echo rtrim($hello, "Hdle"); // 結果「Hello Wor」

rtrimは末尾だけ対象になるので、結果は「Hello Wor」となります。

rtrim関数についての公式ドキュメントはこちらです。

全角スペースを削除したい

trim関数で全角スペースを削除しようとした場合、文字化けを起こすことがあります。
文字列の間の全角も消えますが、問題ない場合はstr_replaceを下記のように代用すると良いです。

<?php
echo str_replace(' ', '', '  アイウエオ  '); // 結果「アイウエオ」

終わりに

今回は文字列の空白(スペース)を消してくれるtrim関数について確認してみました。
紹介した関数の挙動をまとめると下記のようになります。

trimが前後のスペースを削除
ltrimが前のスペースを削除
rtrimが後のスペースを削除

マルチバイト文字に対応していないので、マルチバイトを扱う場合は、str_replaceやpreg_replaceなどを使用した方が良さそうですね。

コメント

タイトルとURLをコピーしました