【PHP】trim()関数で文頭文末の余分な空白や文字を取り除く!
(*このページは2021年5月5日に更新されました。)
PHPのtrim()関数を使用することで文字列の文頭文末の余分な空白や文字を取り除くことができます。
trim()は基本的には文頭文末の半角空白を取り除く関数であり、パラメータを追加することで文頭文末の指定した文字を取り除きます。
そして、「AAAあいAAA」や「 あい 」のように、文頭文末に半角空白や文字が複数個並べられていたとしてもtrim()で全て取り除くことができ、「 あい 」のように、文頭文末に全角空白と半角空白が混ざった状態でもtrim()で取り除くことができます。
今回はPHPのtrim()関数で文頭文末の余分な空白や文字を取り除く方法について以下の内容を解説していきます。
⚫︎ 文頭文末の半角空白を取り除く場合
⚫︎ 文頭文末の指定した文字を取り除く場合
⚫︎ 文頭文末の全角半角混在の空白を取り除く方法
目次
trim()関数とは
trim()関数とは文字の最初や最後にある半角空白や任意の文字を取り除くことができる関数となります。
trim()の書き方
trim()の書き方は下記となります。
1 |
trim(対象の文字列, [文頭文末で削除したい文字] ) |
trim()のパラメータ
⚫︎ 対象の文字列:
文頭文末の空白や文字を削除したい対象の文字列を指定する
⚫︎ 文頭文末で削除したい文字:
文字や全角空白など文頭文末で削除したい文字を指定する
trim()に対象の文字列を指定することで、対象の文字列の文頭文末にある半角空白(” “)やタブ(¥t)、改行(“¥n)、復帰(“¥r”)、垂直タブ(“¥0x0B”、”¥0”)などを削除することができます。
また、文頭文末で削除したい文字も指定すると、対象の文字列の文頭文末にある文字を削除することができます。
文頭文末の余分な空白や文字を取り除くサンプルコード
文頭文末の余分な空白や文字を取り除くサンプルコードをご紹介します。
文頭文末の半角空白を取り除く場合
trim()で文頭文末の半角空白を取り除く場合はパラメータに対象の文字列を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php echo "・trim()で前後の半角空白を削除"; $data = " 前後の空白を削除します。 "; $trim_data = trim($data); echo "削除前:".$data; echo "削除後:".$trim_data; echo "・trim()で前後の全角空白を削除"; $data = " 前後の空白を削除します。 "; $trim_data = trim($data); echo "削除前:".$data; echo "削除後:".$trim_data; ?> |
出力結果
・trim()で前後の半角空白を削除
削除前: 前後の半角空白を削除します。
削除後: 前後の半角空白を削除します。
・trim()で前後の全角空白を削除
削除前: 前後の空白を削除します。
削除後: 前後の空白を削除します。
trim()によって文頭と文末の半角空白が削除されています。
しかし、全角空白は削除されていません。
文頭文末の指定した文字を取り除く場合
trim()で文頭文末の指定した文字を取り除く場合は、パラメータに対象の文字列と文頭文末で削除したい文字を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php echo "・trim()で前後の指定した文字を削除"; $data1 = "A前後の指定した文字を削除します。A"; $trim_data1 = trim($data1, "A"); echo "削除前:".$data1; echo "削除後:".$trim_data1; echo "・trim()で前後の指定した全角空白を削除"; $data2 = " 前後の指定した全角空白を削除します。 "; $trim_data2 = trim($data2, " "); echo "削除前:".$data2; echo "削除後:".$trim_data2; $data3 = "AAAA前後の指定した文字を削除します。AAAA"; $trim_data3 = trim($data3, "A"); echo "削除前:".$data3; echo "削除後:".$trim_data3; echo "・trim()で前後の指定した全角空白を削除"; $data4 = " 前後の指定した全角空白を削除します。 "; $trim_data4 = trim($data4, " "); echo "削除前:".$data4; echo "削除後:".$trim_data4; ?> |
出力結果
・trim()で前後の指定した文字を削除
削除前:A前後の指定した文字を削除します。A
削除後:前後の指定した文字を削除します。
・trim()で前後の指定した全角空白を削除
削除前: 前後の指定した全角空白を削除します。
削除後:前後の指定した全角空白を削除します。
・trim()で前後の指定した文字を削除
削除前:AAAA前後の指定した文字を削除します。AAAA
削除後:前後の指定した文字を削除します。
・trim()で前後の指定した全角空白を削除
削除前: 前後の指定した全角空白を削除します。
削除後:前後の指定した全角空白を削除します。
trim()によって文頭と文末の文字や空白が削除されています。
文頭と文末の文字や空白が複数個あってもそれらは全て取り除かれます。
全角半角混在の空白を取り除く方法
「trim()で1つだけパラメータを使用すると半角空白を削除することができるが、2つパラメータを使用すると全角空白を削除することができる。
それでは、全角半角混在の空白を取り除くにはどうしたら良いのでしょうか?」
結論から言いますと、方法は以下の2つあります。
⚫︎ trim()関数を複数回使用する
⚫︎ mb_convert_kana()を使用する
trim()関数を複数回使用する
trim()関数を複数回使用することで全角半角混在の空白を取り除くことができます。
1回目のtrim()で半角空白を削除し、2回目のtrim()で全角空白を削除するイメージです。
例
1 2 3 4 5 6 7 8 9 10 11 |
<?php // Your code here! echo "・trim()で前後の全角半角混在の空白を取り除く"; $data = " 全角半角混在の空白を取り除きます。 "; $trim_data1 = trim($data); echo "削除前:".$data; echo "削除後:".$trim_data1; $trim_data2 = trim($trim_data1, " "); echo "削除前:".$trim_data1; echo "削除後:".$trim_data2; ?> |
出力結果
・trim()で前後の全角半角混在の空白を取り除く
削除前: 全角半角混在の空白を取り除きます。
削除後: 全角半角混在の空白を取り除きます。
削除前: 全角半角混在の空白を取り除きます。
削除後:全角半角混在の空白を取り除きます。
trim()を複数回使用することで文頭と文末の半角と全角の空白が削除されています。
mb_convert_kana()を使用する
mb_convert_kana()を使用することでも全角半角混在の空白を取り除くことができます。
例
1 2 3 4 5 6 7 8 9 10 |
<?php echo "・trim()で前後の全角半角混在の空白を取り除く"; $data = " 全角半角混在の空白を取り除きます。 "; echo "変換前:".$data; $data = mb_convert_kana($data,'s','utf-8'); echo "変換後:".$data; echo "削除前:".$data; $trim_data = trim($data); echo "削除後:".$trim_data; ?> |
出力結果
・trim()で前後の全角半角混在の空白を取り除く
変換前: 全角半角混在の空白を取り除きます。
変換後: 全角半角混在の空白を取り除きます。
削除前: 全角半角混在の空白を取り除きます。
削除後:全角半角混在の空白を取り除きます。
mb_convert_kana()で全角空白を半角空白に変更し、trim()で文頭と文末の半角空白が削除されています。
今回のポイント
trim()関数で文頭文末の空白や文字を取り除く
PHPで文頭文末の空白や文字を取り除くにはtrim()を使用する。
⚫︎ trim()のパラメータには対象の文字列と文頭文末で削除したい文字を指定する
(対象の文字列は必須パラメータ)
⚫︎ trim()で文頭文末の半角空白を取り除く場合、パラメータに対象の文字列を指定する
(半角空白が文頭文末に複数あっても全て取り除かれるが、全角空白は取り除かれない)
⚫︎ trim()で文頭文末の指定した文字を取り除く場合、パラメータに対象の文字列と文頭文末で削除したい文字を指定する。
(指定した文字が文頭文末に複数あっても全て取り除くことができ、全角空白はこちらで取り除くことが可能。)
⚫︎ 全角半角混在の空白を取り除くにはtrim()を複数回使用する方法とmb_convert_kana()で変換後にtrim()を使用する方法がある
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。