【PHP8.x】ltrim関数の使い方

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

作成日: 更新日:

基本的な使い方

ltrim関数は、指定された文字列の先頭(左側)から特定の文字を取り除いた新しい文字列を生成して返す関数です。主に、文字列の先頭にある不要な空白文字や記号などをクリーンアップする目的で使用されます。

この関数は、最初の引数として加工したい文字列を受け取ります。例えば、ユーザーがフォームに入力したデータや、ファイルから読み込んだテキストの先頭に、意図しないスペースや改行文字が含まれている場合に、それらを簡単かつ確実に取り除くことができます。

2番目の引数はオプションで、取り除きたい文字の集合を指定します。この引数を省略した場合、ltrim関数はデフォルトで、半角スペース、タブ(\t)、改行(\n)、キャリッジリターン(\r)、ヌルバイト(\0)、垂直タブ(\v)を文字列の先頭から取り除きます。もし、これらのデフォルト文字以外に、例えばスラッシュ(/)やハイフン(-)といった特定の記号を取り除きたい場合は、2番目の引数としてそれらの文字を指定します。指定された文字が文字列の先頭に連続して存在する場合、それらすべてが除去されます。

ltrim関数は、元の文字列そのものを変更するのではなく、加工済みの新しい文字列を戻り値として返します。このため、元の文字列はそのまま保持され、必要に応じて加工後の文字列を利用できます。例えば、「 Hello PHP」という文字列にltrim関数を適用すると、「Hello PHP」という新しい文字列が返されます。

構文(syntax)

1<?php
2
3$trimmed_string = ltrim($string, $characters);

引数(parameters)

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

  • string $string: 文字列の先頭から指定された文字を削除した結果を返します。
  • string $characters = " \n\r\t\v\0": $string の先頭から削除する対象となる文字を指定します。省略された場合は、空白文字、改行、キャリッジリターン、タブ、垂直タブ、NULL文字が対象となります。

戻り値(return)

string

文字列の先頭から指定された文字が削除された新しい文字列を返します。指定された文字が文字列の先頭にない場合、または指定文字が空の場合は、元の文字列がそのまま返されます。

サンプルコード

PHP ltrimで先頭の0を取り除く

1<?php
2
3/**
4 * 文字列の先頭から '0' を取り除くサンプルコード
5 *
6 * ltrim() は、文字列の左側 (先頭) から指定した文字を取り除きます。
7 * キーワード '0' に関連し、商品コードやゼロ埋めされた数値文字列の
8 * 先頭の '0' を削除する例を示します。
9 *
10 * @param string $code 処理対象の文字列
11 * @return void
12 */
13function removeLeadingZeros(string $code): void
14{
15    echo "元のコード: " . $code . PHP_EOL;
16
17    // ltrim() 関数の第2引数に '0' を指定します。
18    // これにより、文字列の先頭にある '0' がすべて取り除かれます。
19    $trimmedCode = ltrim($code, '0');
20
21    echo "ltrim() 実行後のコード: " . $trimmedCode . PHP_EOL;
22}
23
24// 先頭に '0' が複数含まれるサンプル文字列
25$productCode = '00054321';
26
27// 関数を呼び出して実行します
28removeLeadingZeros($productCode);
29
30?>

PHPのltrim関数は、文字列の左側、つまり先頭から不要な文字を取り除くための関数です。

第1引数には、処理対象となる文字列を指定します。サンプルコードでは、'00054321'という商品コードがこれに該当します。

第2引数には、取り除きたい文字を指定します。この引数を指定しない場合、デフォルトでスペースや改行などの空白文字が削除されます。このサンプルでは、キーワードである'0'を明示的に指定しています。これにより、ltrim関数は文字列の先頭にある'0'のみを削除の対象とします。

この関数を実行すると、第1引数の文字列の先頭から、第2引数で指定された文字が連続する限りすべて削除されます。サンプルコードの'00054321'の場合、先頭の3つの'0'が取り除かれ、'0'以外の文字である'5'が現れた時点で処理は停止します。

戻り値として、処理が完了した後の新しい文字列が返されます。この例では'54321'という文字列が返却されます。元の文字列自体が変更されることはありません。このようにltrim関数は、ゼロ埋めされた数値データの整形などに活用できます。

ltrim関数は、文字列の先頭から、第2引数で指定された文字が連続する限りすべて取り除きます。文字列の途中にある同じ文字は削除されない点に注意してください。第2引数に'10'のように複数の文字を指定した場合、'1'と'0'のいずれかの文字が先頭から続く限り削除されます。'10'という文字列単位で探すわけではありません。第2引数を省略すると、スペースや改行などの空白文字がデフォルトの削除対象となります。この関数は元の文字列を変更せず、処理後の新しい文字列を返すため、必ず変数に代入するなどして結果を受け取る必要があります。また、'0'のような文字列全体が削除対象文字のみで構成されている場合、結果は空文字列になります。

PHP ltrim 関数で文字列左端を削除する

1<?php
2
3/**
4 * ltrim関数の基本的な使い方を示すサンプルコードです。
5 * 文字列の左端から指定された文字を削除します。
6 * 指定がない場合は、デフォルトで空白文字(スペース、タブ、改行など)を削除します。
7 */
8
9// 1. 引数を指定しない場合:デフォルトで空白文字を削除
10//    文字列の左端にある半角スペース、タブ、改行などを取り除きます。
11$originalString1 = "   Hello PHP!   ";
12$trimmedString1 = ltrim($originalString1);
13echo "元の文字列 (空白あり): '" . $originalString1 . "'\n";
14echo "ltrim後 (デフォルトの空白削除): '" . $trimmedString1 . "'\n\n";
15
16// 2. 特定の文字を指定して削除
17//    指定した文字列に含まれる文字が、元の文字列の左端にある限り削除されます。
18$originalString2 = "---Data Value---";
19$trimmedString2 = ltrim($originalString2, "-"); // 左端のハイフンを削除
20echo "元の文字列 (ハイフンあり): '" . $originalString2 . "'\n";
21echo "ltrim後 (ハイフン削除):      '" . $trimmedString2 . "'\n\n";
22
23// 3. 複数の特定の文字を指定して削除
24//    指定された文字群("/ ")に含まれる文字が左端にある限り削除されます。
25$originalString3 = "/ / /  Start Here";
26$trimmedString3 = ltrim($originalString3, "/ "); // スラッシュとスペースを削除
27echo "元の文字列 (スラッシュとスペースあり): '" . $originalString3 . "'\n";
28echo "ltrim後 (スラッシュとスペース削除):      '" . $trimmedString3 . "'\n\n";
29
30// 4. 指定した文字が左端にない場合:何も削除されない
31//    'N'の次の文字が'o'であるため、'N'のみが削除されます。
32$originalString4 = "No leading chars.";
33$trimmedString4 = ltrim($originalString4, "N");
34echo "元の文字列 (Nで始まる): '" . $originalString4 . "'\n";
35echo "ltrim後 (N削除):      '" . $trimmedString4 . "'\n\n";
36
37//    この例では、指定した文字"-"が左端にないため、何も削除されません。
38$originalString5 = "No leading chars.";
39$trimmedString5 = ltrim($originalString5, "-");
40echo "元の文字列 (ハイフンなし): '" . $originalString5 . "'\n";
41echo "ltrim後 (ハイフン指定で削除試行):      '" . $trimmedString5 . "'\n\n";
42
43?>

PHPのltrim関数は、文字列の先頭(左側)から不要な文字を取り除くための関数です。

第1引数には処理対象の文字列を渡します。第2引数には削除したい文字を文字列で指定しますが、この引数は省略可能です。処理後、不要な文字が取り除かれた新しい文字列が戻り値として返されます。元の文字列自体は変更されません。

第2引数を省略すると、デフォルトで半角スペース、タブ、改行などの空白文字が削除対象となります。サンプルコードの例では、" Hello PHP! "という文字列の先頭の空白だけが取り除かれています。

第2引数に特定の文字、例えば"-""/ "を指定すると、指定した文字群に含まれるいずれかの文字が、文字列の先頭から連続している限り削除されます。例えば"---Data Value---"から"-"を取り除くと、先頭のハイフンだけが削除され"Data Value---"となります。文字列の途中に指定文字があっても、先頭から連続していなければ削除は行われません。また、指定した文字が文字列の先頭に一つも存在しない場合は、何も変更されません。

ltrim関数を使う際の注意点として、第2引数に指定した文字列は、その文字列全体として一致するかどうかではなく、そこに含まれる個々の文字が削除対象になることを覚えておきましょう。例えば"AB"と指定すると、文字列の先頭からAまたはBが続く限り削除されます。この処理は文字列の左端(先頭)のみに適用され、右端の文字は削除されません。右端や両端の空白などを削除したい場合は、それぞれrtrim関数やtrim関数を使用してください。また、この関数はバイト単位で動作するため、日本語などのマルチバイト文字を削除文字として指定すると文字化けの原因となる可能性があるため注意が必要です。

関連コンテンツ