Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】trim()関数の使い方

trim関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

trim関数は、文字列の先頭と末尾から空白文字や指定した文字を取り除く関数です。

この関数は、指定された文字列の左端と右端に存在する不要な文字を削除し、整形された新しい文字列を返します。デフォルトでは、半角スペース、タブ文字(\t)、改行文字(\n)、キャリッジリターン(\r)、垂直タブ(\v)、ヌルバイト(\0)などの空白文字が削除の対象となります。

オプションの第二引数 $characters を使用すると、これらのデフォルトの空白文字以外にも、削除したい任意の文字群を指定できます。例えば、複数の文字を組み合わせた文字列を指定した場合、その指定された文字のいずれかが文字列の先頭や末尾に出現する限り、それらの文字が削除され続けます。この機能は、ユーザーがフォームに入力したデータの前後に誤って含まれるスペースを取り除いたり、ファイルパスやURLなどの文字列から特定の区切り文字を整形したりする際に非常に役立ちます。

trim関数は、加工後の文字列を新しい文字列として返します。元の文字列そのものが変更されることはありませんので、元のデータを保持しつつ、整形されたデータを利用したい場合に安全に使用できます。データの整合性を保ち、アプリケーションの信頼性を向上させるために不可欠な関数の一つです。

構文(syntax)

1<?php
2$text = "   Hello, PHP!   ";
3$trimmedText = trim($text);
4echo $trimmedText;
5?>

引数(parameters)

string $string, string $characters = " \n\r\t\v\0"

  • string $string: トリミング(削除)したい文字列を指定します。
  • string $characters = " \n\r\t\v\0": $string の先頭と末尾から削除する文字を指定します。デフォルトでは、スペース、改行、キャリッジリターン、タブ、垂直タブ、NULL文字が指定されています。

戻り値(return)

string

文字列の先頭と末尾から指定された文字を取り除いた新しい文字列を返します。

サンプルコード

PHP trimで文字列の空白を削除する

1<?php
2
3/**
4 * 文字列の先頭と末尾の空白を削除するサンプルコード
5 */
6$string = "   Hello, World!   ";
7
8// trim関数を使って、文字列の先頭と末尾の空白を削除します。
9$trimmedString = trim($string);
10
11// 結果を出力します。
12echo "元の文字列: '" . $string . "'\n";
13echo "トリム後の文字列: '" . $trimmedString . "'\n";
14?>

PHPのtrim関数は、文字列の先頭と末尾から指定された文字(デフォルトでは空白文字)を取り除くために使用します。この関数は文字列を引数として受け取り、トリミングされた新しい文字列を返します。元の文字列は変更されません。

サンプルコードでは、まず、先頭と末尾に空白を含む文字列 $string を定義しています。次に、trim($string) を呼び出すことで、この文字列の先頭と末尾の空白を削除しています。trim関数の第二引数 $characters を省略した場合、半角スペース、改行文字、キャリッジリターン、タブ、垂直タブ、NULLバイトが削除対象となります。第二引数に削除したい文字を明示的に指定することも可能です。

trim関数が実行されると、文字列の先頭と末尾にあるこれらの空白文字が取り除かれ、結果が $trimmedString に格納されます。最後に、元の文字列とトリム後の文字列を echo で出力して、trim関数の効果を確認しています。この例では、" Hello, World! " から空白が取り除かれ、"Hello, World!" という結果が得られます。trim関数は、ユーザーからの入力を処理する際など、文字列の前後の不要な空白を削除するのに非常に役立ちます。

trim()関数は、文字列の先頭と末尾から指定された文字(デフォルトでは空白、改行、タブなど)を取り除く関数です。引数$charactersを指定しない場合、一般的な空白文字が削除されます。もし、削除したい文字が空白文字以外の場合は、第2引数で明示的に指定する必要があります。trim()関数は元の文字列を変更せず、新しい文字列を返します。文字列の前後の特定文字を削除する際に便利ですが、文字列の途中の空白は削除されない点に注意が必要です。また、全角スペースも削除対象としたい場合は、第2引数に含める必要があります。

PHP trimで全角スペースも除去する

1<?php
2
3/**
4 * 文字列の先頭と末尾にある空白文字(全角スペースを含む)を取り除くサンプルコード
5 */
6function trim_with_zenkaku(string $string): string
7{
8  // 全角スペースを半角スペースに置換してからtrim()を実行
9  $string = str_replace(" ", " ", $string);
10  return trim($string);
11}
12
13// テスト
14$str = "    Hello, World!    "; // 先頭と末尾に全角スペースと半角スペース
15$trimmed_str = trim_with_zenkaku($str);
16
17echo "元の文字列: '" . $str . "'\n";
18echo "トリム後の文字列: '" . $trimmed_str . "'\n";
19?>

このPHPサンプルコードは、文字列の先頭と末尾から空白文字を取り除くtrim()関数を、全角スペースにも対応できるように拡張したものです。

PHPの標準関数trim(string $string, string $characters = " \n\r\t\v\0")は、文字列$stringの先頭と末尾から、$charactersで指定された文字(デフォルトでは半角スペース、改行、タブなど)を取り除きます。しかし、標準のtrim()関数は全角スペースに対応していません。

そこで、このサンプルコードではtrim_with_zenkaku(string $string)という関数を定義し、まずstr_replace(" ", " ", $string)を使って、文字列中の全角スペースを半角スペースに置換しています。その後、置換された文字列に対してtrim()関数を実行することで、全角スペースを含む文字列のトリムを実現しています。

trim_with_zenkaku()関数は、引数としてトリム対象の文字列$stringを受け取り、トリム処理後の文字列を返します。

サンプルコードでは、先頭と末尾に全角スペースと半角スペースを含む文字列を $str に代入し、trim_with_zenkaku()関数でトリム処理を行った結果を $trimmed_str に格納しています。そして、元の文字列とトリム後の文字列をecho文で出力し、処理結果を確認できるようにしています。

この方法を用いることで、全角スペースが混在する可能性のある文字列を扱う場合でも、文字列の整形処理を確実に行うことができます。

PHPのtrim関数は、デフォルトでは半角スペースなどの空白文字しか削除しません。全角スペースを取り除くためには、str_replace関数で全角スペースを半角スペースに置換してからtrim関数を使用する必要があります。サンプルコードではtrim_with_zenkaku関数内でこの処理を行っています。

この方法では、全角スペースを半角スペースに一時的に変換するため、文字列中の意図しない全角スペースも影響を受ける可能性があります。もし、全角スペースのみを厳密に削除したい場合は、正規表現を使用するpreg_replace関数などを検討してください。また、UTF-8などのマルチバイト文字を扱う場合は、mb_trimのような関数が存在しないため、同様にmb_ereg_replaceなどで対応する必要があります。

PHP trimで改行・空白を除去する

1<?php
2
3/**
4 * PHPのtrim関数を使用して、文字列の先頭と末尾から空白文字(改行、スペース、タブなど)を除去する例を示します。
5 * この関数は、システムエンジニアを目指す初心者向けに、trim関数の基本的な挙動と「改行」の扱いを簡潔に解説します。
6 */
7function demonstrateTrimNewline(): void
8{
9    // 先頭と末尾に改行、タブ、スペースを含むサンプル文字列を定義します。
10    // \n: 改行 (Line Feed)
11    // \r: 復帰 (Carriage Return)
12    // \t: タブ
13    // ' ': 半角スペース
14    $originalString = "  \n\t  Hello, PHP World!  \n\r  This is an example.   \n";
15
16    echo "--- 元の文字列(先頭と末尾に空白文字と改行が含まれます)---" . PHP_EOL;
17    echo "---↓ここから---" . PHP_EOL;
18    echo $originalString; // 改行やスペースを含む文字列そのままを出力
19    echo "---↑ここまで---" . PHP_EOL;
20    echo "(元の文字列の長さ: " . strlen($originalString) . "文字)" . PHP_EOL . PHP_EOL;
21
22    // trim関数を適用します。
23    // trimはデフォルトで、スペース、タブ、改行 (\n, \r)、垂直タブ (\v)、NULLバイト (\0)
24    // およびフォームフィード (\f) を文字列の先頭と末尾から除去します。
25    $trimmedString = trim($originalString);
26
27    echo "--- trim関数適用後の文字列(先頭と末尾の空白文字と改行が除去されます)---" . PHP_EOL;
28    echo "---↓ここから---" . PHP_EOL;
29    echo $trimmedString; // trim後の文字列を出力
30    echo "---↑ここまで---" . PHP_EOL;
31    echo "(trim後の文字列の長さ: " . strlen($trimmedString) . "文字)" . PHP_EOL . PHP_EOL;
32
33    echo "--- 補足 ---" . PHP_EOL;
34    echo "trim関数は文字列の中間にある空白文字や改行は除去しません。" . PHP_EOL;
35    echo "除去されるのはあくまで文字列の「先頭」と「末尾」のみです。" . PHP_EOL;
36}
37
38// 上記の関数を実行して、trim関数の動作を確認します。
39demonstrateTrimNewline();

PHPのtrim関数は、文字列の先頭と末尾から不要な空白文字を除去するために使用される関数です。システムエンジニアを目指す初心者の方にとって、ユーザー入力の整形やデータ処理で役立つ基本的な機能の一つです。

この関数は、第一引数$stringで指定された文字列を受け取ります。そして、デフォルトでは半角スペース、タブ、改行(\n)、復帰(\r)などの一般的な空白文字を、その文字列の先頭と末尾から取り除きます。特に「改行」は、ファイルからの読み込みやフォーム入力で意図せず含まれることが多いため、trim関数で簡単に除去できることを覚えておくと便利です。

オプションの第二引数$charactersを指定することで、デフォルトの空白文字だけでなく、特定の文字を先頭と末尾から除去するようにカスタマイズすることも可能です。処理が完了すると、trim関数は空白文字が除去された新しい文字列をstring型で返します。元の文字列自体は変更されません。

提供されたサンプルコードが示すように、trim関数は文字列の「先頭」と「末尾」のみを処理し、文字列の途中に含まれる空白文字や改行はそのまま保持されます。この特性を理解することで、文字列の不要な前後の余白を効果的に削除し、データの一貫性を保つことができます。

PHPのtrim関数は、文字列の「先頭」と「末尾」からのみ空白文字や改行を除去する点に注意してください。文字列の中間にある空白や改行は処理されません。デフォルトでは、半角スペース、タブ、改行(\n, \r)、垂直タブ、NULLバイトが除去対象に含まれるため、改行コードを明示的に指定しなくても自動的に除去されます。関数は処理後の新しい文字列を返し、元の文字列は変更されないため、結果を受け取る変数を用意してください。特定の文字だけを除去したい場合は、第二引数で除去対象の文字を指定することも可能です。

関連コンテンツ

関連プログラミング言語