trim

文字列の先頭および末尾にあるホワイトスペースを取り除く

説明

string trim(string $string, string $characters = " \n\r\t\v\x00")

この関数は string の最初および最後から空白文字を取り除き、 取り除かれた文字列を返します。2番目のパラメータを指定しない場合、 trimは以下の文字を削除します。

  • " ": ASCIISP 文字 0x20 、通常のスペース。
  • "\t": ASCIIHT 文字 0x09 、タブ。
  • "\n": ASCIILF 文字 0x0A 、改行(ラインフィード)。
  • "\r": ASCIICR 文字 0x0D 、キャリッジリターン。
  • "\0": ASCIINUL 文字 0x00 、NULバイト。
  • "\v": ASCII VT 文字 0x0B 、垂直タブ。

パラメータ

string

ホワイトスペースを取り除く string

characters
必要に応じて、削除する文字を characters パラメータで指定することもできます。 削除が必要なすべての文字を単純にリストとして記述してください。 .. を使用することで、連続する文字の範囲を指定することも可能です。

戻り値

ホワイトスペースを取り除いた文字列

例1 trimの使用例

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// trim the ASCII control characters at the beginning and end of $binary
// (from 0 to 31 inclusive)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

上の例の出力は以下となります。

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

例2 trim を用いて配列の値をトリミングする

<?php
function trim_value(&$value) 
{ 
    $value = trim($value); 
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

上の例の出力は以下となります。

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

注意

注意: わかるかな?: 途中の文字が取り除かれる

trimstring の先頭と末尾から文字を取り除くので、 文字列の途中にある文字がを取り除かれたり (あるいは取り除かれなかったり) すると少し戸惑うことでしょう。 trim('abc', 'bad') は 'a' と 'b' を両方取り除きます。 なぜなら、まず 'a' を取り除いた時点で 'b' が先頭の文字となり、それも取り除く対象だからです。 したがって、この処理は正しく動きます。一方、 trim('abc', 'b') は動かないでしょう。

参考

  • ltrim
  • rtrim
  • str_replace