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

作成日: 更新日:

chop関数は、文字列の右端(末尾)から空白文字、または指定された特定の文字を取り除く処理を実行する関数です。この関数は、PHPのrtrim関数と全く同じ動作をするエイリアス(別名)として提供されており、主に文字列の末尾に存在する不要なスペースや改行などを除去する目的で利用されます。

この関数は、一つまたは二つの引数を受け取ります。必須となる第一引数には、処理の対象となる文字列を指定します。例えば、ユーザーからの入力データや、ファイルから読み込んだ文字列の末尾に意図しない空白文字が含まれている場合に、それらを整形するために役立ちます。

オプションである第二引数には、取り除きたい文字の集合を文字列形式で指定できます。この引数を省略した場合、デフォルトで一般的な空白文字(スペース、タブ、改行、NULLバイト、復帰など)が対象となり、これらが文字列の末尾から削除されます。第二引数に"ABC"と指定した場合は、対象文字列の末尾から'A'、'B'、'C'のいずれかの文字が連続して現れる限り削除されます。

chop関数は、処理後の新しい文字列を返します。元の文字列自体は変更されません。データの整形やクリーンアップなど、文字列処理が必要な場面で幅広く活用できます。より詳しい情報や応用例については、rtrim関数の公式ドキュメントをご参照ください。

基本的な使い方

構文(syntax)

<?php
// string chop ( string $string , string $characters = " \n\r\t\v\x00" ) : string
chop("  Hello PHP! \n");
?>

引数(parameters)

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

  • string $string: 処理対象の文字列
  • string $characters = " \n\r\t\v\0": 文字列の末尾から削除する文字を指定する文字列。デフォルトでは、空白、改行、キャリッジリターン、タブ、垂直タブ、ヌル文字が指定されています。

戻り値(return)

string

引数で指定された文字列の末尾にある、指定された文字(デフォルトでは空白文字)を取り除いた新しい文字列を返します。

サンプルコード

PHP chop() 関数で末尾の文字を削除する

<?php

/**
 * 文字列の末尾から文字を取り除く chop() 関数の使用例
 *
 * chop() は rtrim() 関数のエイリアス(別名)です。
 * 文字列の右端(末尾)から空白文字または指定された文字を取り除きます。
 */
function demonstrateChopFunction(): void
{
    // --- 例1: デフォルトの動作(末尾の空白文字を削除) ---

    // 末尾に半角スペース、タブ、改行コードが含まれる文字列
    $string1 = "Hello, PHP World!   \t\n";

    echo "元の文字列1:" . PHP_EOL;
    // var_dumpは型と値、長さを詳細に表示するため、変更が分かりやすい
    var_dump($string1);

    // chop() を使って末尾の空白文字を削除
    $trimmedString1 = chop($string1);

    echo PHP_EOL . "chop() 適用後の文字列1:" . PHP_EOL;
    var_dump($trimmedString1);


    // --- 例2: 削除する文字を明示的に指定 ---
    echo "----------------------------------------" . PHP_EOL;

    // ファイルパスの末尾によくあるスラッシュを削除する例
    $string2 = "/var/www/html/public/";

    echo "元の文字列2:" . PHP_EOL;
    var_dump($string2);

    // 第2引数に削除したい文字 "/" を指定
    $trimmedString2 = chop($string2, "/");

    echo PHP_EOL . "chop(\$string2, '/') 適用後の文字列2:" . PHP_EOL;
    var_dump($trimmedString2);
}

// 関数を実行して結果を表示
demonstrateChopFunction();

PHPのchop()関数は、文字列の末尾(右側)から不要な文字を取り除くために使用する関数です。これはrtrim()関数と全く同じ機能を持つ別名(エイリアス)です。

この関数は、第1引数に処理対象となる文字列を受け取ります。第2引数には、取り除きたい文字を指定しますが、この引数は省略可能です。もし第2引数を省略した場合は、半角スペース、タブ、改行コードなどの標準的な空白文字が自動的に削除対象となります。処理が完了すると、末尾の文字が取り除かれた新しい文字列が戻り値として返され、元の文字列自体が変更されることはありません。

サンプルコードの例1では、第2引数を指定せずにchop()関数を呼び出しているため、文字列の末尾にある半角スペースや改行が削除されています。一方、例2では第2引数にスラッシュ「/」を指定することで、ファイルパスの末尾にあるスラッシュだけを意図的に取り除いています。このようにchop()関数は、文字列の右端を整形したい場合に便利な関数です。

chop()関数はrtrim()関数と全く同じ機能で、文字列の右端(末尾)からのみ文字を削除します。文字列の先頭や中間にある文字は削除されない点に注意してください。第2引数で削除する文字を指定する場合、その文字列全体に一致する部分を削除するのではなく、そこに含まれる「いずれかの文字」が末尾にある限り取り除きます。例えばchop("Sample!!", "!e")とすると、末尾にある!eが削除対象となり、結果は"Sampl"になります。また、この関数はバイト単位で動作するため日本語などマルチバイト文字を扱う際には意図しない結果になる可能性があります。元の文字列は変更されず、処理後の新しい文字列が返されることも重要です。

chop関数で文字列末尾の文字を削除する

<?php

/**
 * chop()関数は、文字列の末尾(右側)から文字を取り除きます。
 * これは rtrim() 関数のエイリアス(別名)です。
 * 第二引数で、取り除く文字のセットを指定できます。
 */

// キーワード "chopper e dha" に関連するサンプル文字列を定義します。
$originalString = 'chopper e dha';

// 第二引数に削除したい文字のセットを指定します。
// ここでは ' '(スペース), 'e', 'd', 'h', 'a' のいずれかの文字が
// 文字列の末尾にある限り、それらを削除するよう指定しています。
// 注意: 文字の順序は関係ありません。
$charactersToRemove = ' e dha';

// chop()関数を使い、文字列の末尾から指定した文字セットを取り除きます。
$choppedString = chop($originalString, $charactersToRemove);

// 元の文字列と、処理後の文字列を比較して出力します。
echo "元の文字列:      '{$originalString}'" . PHP_EOL;
echo "chop()後の文字列: '{$choppedString}'" . PHP_EOL;

PHPのchop()関数は、文字列の末尾(右側)から特定の文字を取り除くための関数です。これはrtrim()関数と同じ機能を持つエイリアス(別名)です。

この関数は主に2つの引数を取ります。第一引数には、処理対象となる文字列を指定します。第二引数には、取り除きたい文字をひとつの文字列として指定します。この第二引数を省略した場合は、スペース、タブ、改行といった一般的な空白文字が削除対象となります。処理が成功すると、指定された文字が末尾から取り除かれた新しい文字列が戻り値として返されます。元の文字列そのものは変更されません。

サンプルコードでは、'chopper e dha'という文字列に対してchop()関数を使用しています。第二引数に' e dha'と指定することで、文字列の末尾からスペース、'e'、'd'、'h'、'a'のいずれかの文字が連続している限り、それらをすべて取り除きます。この処理により、'chopper e dha'の末尾にある' e dha'の部分が削除され、結果として'chopper'という文字列が生成されて出力されます。

chop()関数は、文字列の右側(末尾)からのみ文字を削除する点に注意が必要です。文字列の途中にある文字は、たとえ削除対象として指定されていても削除されません。第二引数で指定した文字群は「セット」として扱われるため、文字の順序は関係なく、指定されたいずれかの文字が末尾に連続している限り削除処理が続きます。そして、指定セットに含まれない文字が最初に見つかった時点で処理は停止します。この関数はrtrim()の別名でもあり、コードの意図を明確にするためにrtrim()の使用が推奨されることが多いです。第二引数を省略した場合は、スペースや改行などの一般的な空白文字が削除対象となります。

【PHP8.x】chop関数の使い方 | いっしー@Webエンジニア