PHPのtrimで文字列の先頭と末尾の空白を取り除く方法【初心者向け】

プログラミング初心者向けにPHPのtrim関数を使って文字列の先頭と末尾の空白を取り除く方法について解説しています。取り除く文字列も指定できるので、効率よく開発の作業を進められるはずです。ぜひ書き方を覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

trim関数を使って文字列の先頭と末尾の空白を取り除く方法を解説しています。

自分が意図しないで発生した空白はなかなか気づきにくいものです。自動で空白を認識してくれるので、ぜひ書き方を覚えておきましょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

trim関数とは

trimは文字列の最初と最後の空白を取り除く関数です。

パラメータを指定することによって改行など特定の要素のみを削除することもできます。

 

大石ゆかり

田島メンター!空白は見えないのに取り除く必要はあるのでしょうか?

田島悠介

普通の文章として書く時は、取り除かなくても大丈夫だけど、プログラムで空白があると困ることが多いんだよ。

大石ゆかり

エラーの原因になったりするんでしょうか?

田島悠介

そうだね。とりあえず、空白除去の関数をざっと見てみよう!

 

trimの書き方

trimは以下のように記述します。

trim(文字列,"取り除く要素")

()内に空白を取り除く文字列と取り除く要素を指定します。(取り除く要素の部分は省略が可能です)

要素を指定しない場合は” “(半角の空白※全角は対象になりません)、”\t”(水平タブ)、”\n”(ラインフィード)、”\r”(改行)、null文字、”\x0B”(垂直タブ)の全てが対象となり取り除かれます。指定した場合はその要素だけが文字列の前後から取り除かれます。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

パラメータを指定せずに全ての空白要素を取り除く

取り除く要素を指定しない場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $str = "\t\t\t文字列\t\t\t";
      echo $str;
      echo "\n";
      $str = trim ($str);
      echo $str;
      echo "\n";
    ?>
  </body>
</html>

ここでは最初と最後に空白のある文字列が格納された変数$strを最初にechoで出力し、trimによって処理した後もう一度echoで出力します。

実行後、ソースコード内ではこのようになります。二回目の出力では空白が取り除かれています。(ブラウザ上では空白が自動で詰められるため一回目も二回目も同じ表示になります)

php_tr_1

 

パラメータを指定して特定の要素を取り除く

特定の要素だけをパラメータで指定して取り除いた場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $strt = "\t\t\t前後に空白\t\t\t";
      $strn = "\n\n\n前後に改行\n\n\n";
      echo $strt;
      echo $strn;
      $strt = trim($strt,"\n");
      $strn = trim($strn,"\n");
      echo $strt;
      echo $strn;
    ?>
  </body>
</html>

ここではまず前後に“\t”による空白が3つずつ入った文字列$strtと、前後に“\n”による改行が3つずつ入った文字列$strnを用意し最初にそれを出力します。

次にそれぞれの文字列にtrim“\n”だけを指定し取り除き、もう一度両方の文字列を出力します。

結果はこのようになります。

$strtには“\n”は含まれていないため一回目と同じまま表示され、$strnの方は前後の改行が全て取り除かれた状態になります。

php_tr_2

 

ltrimとrtrim

trimの代わりにltrimあるいはrtrimを使用すると、文字列の最初あるいは最後の空白だけを取り除くことができます。ltrimは文字列の最初、rtrimは文字列の最後が対象になります。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $strl = "\t\t\t左だけ削除\t\t\t";
      $strr = "\t\t\t右だけ削除\t\t\t";
      echo $strl;
      echo $strr;
      echo "\n";
      $strl = ltrim($strl);
      $strr = rtrim($strr);
      echo $strl;
      echo $strr;
    ?>
  </body>
</html>

php_tr_3

 

おわりに

PHPのtrim関数を使って空白を取り除く方法を説明しました。

 

大石ゆかり

trimだけじゃなくて、ltrimやrtrimなんてのもあるんですねー。

田島悠介

lはleft(左)のl。rはright(右)のrって覚えればいいよ。

大石ゆかり

丸暗記する必要はありますか?

田島悠介

そういえば、空白を除去する関数があったな~ぐらいで良いと思うよ。後は、またリファレンスで調べたりするのがいいね。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。