PHPで標準入力から改行を取り除くのは、trimで十分だった

PHPの標準入力を使っていた時、以下のようにしていた。

preg_replace('/\r\n|\r|\n/', '', fgets(STDIN));

しかし、ネット上を見ていると、trimを使っていた。
PHPのマニュアルを調べると、trimには以下のように書いてあった。

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

” ” (ASCII 32 (0x20)), 通常の空白。
“\t” (ASCII 9 (0x09)), タブ。
“\n” (ASCII 10 (0x0A)), リターン。
“\r” (ASCII 13 (0x0D)), 改行。
“\0” (ASCII 0 (0x00)), NULバイト
“\x0B” (ASCII 11 (0x0B)), 垂直タブ

実際に試してみると、改行が取り除かれていることがわかる。
PHP 5.6.28で確認した。

$test = fgets(STDIN);
var_dump($test);
// 結果
// string(3) "3
// "

$test = trim(fgets(STDIN));
var_dump($test);
// 結果
// 3
// string(1) "3"

$test = preg_replace('/\r\n|\r|\n/', '', fgets(STDIN));
var_dump($test);
// 結果
// 3
// string(1) "3"

コメント

タイトルとURLをコピーしました