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"
コメント