【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などで対応する必要があります。