PHPでファイルから文字列を読み取る、またコマンドラインからの標準入力を受け取る場合などで使うのがfgets関数。

fgets関数は単体で使うと1行のみしか入力文字列を取得してくれないが、while文と組み合わせることで、複数行の入力文字列を取得することができる。

今回は、取得した複数行の入力文字を使いやすいように、配列へ保存する方法を紹介する。

<?php
$input_array = array();
while($input_line = fgets(STDIN)) {
    array_push($input_array, $input_line);
}

上記はfgets関数の引数にSTDINを渡し、標準入力を受け取る例。

fgets関数は読み込むデータがなくなった時にfalseを返すので、while文を使ってデータが存在する限り1行ずつ$input_lineに読み込んでいく。

読み込んだデータはarray_push関数を使って、配列へ追加していく。

これで複数行の入力文字列を配列に格納することができる。