【PHP】ファイルから一行分のデータを取得する関数「fgtes()」
今回はPHPで使用できる、メモ帳などのファイルから一行分のデータを取得できる「fgets()」を使用してみます。
ファイルから一行分のデータを取得する関数「fgets()」
|
1 |
fgets(読み込みたいファイル名); |
EOF(End Of File)の場合、「false」を返します。
ただし諸注意として、「fgets()」でデータを取得する前に「fopen()」のモード「”r”」でファイルを開いて置く必要があります。
「fopen()」についてはこちらから。
それではテストとして、以下のファイルデータを一行ずつ取得し、出力してみます。
・サンプルデータ「”test.txt”」
この文章はテストです。
今回は「fgets()」を使用します。
「fgets()」はファイルから一行分のデータを取得できます。
これは便利な関数ですね。
それではサンプルコードです。
ファイルのデータを二行分だけ取得し、出力する
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php //fgets(読み込みたいファイル名); $file = fopen("test.txt" , "r"); //モード「"r"」でファイルをオープン $one = fgets($file); //一行目を変数に格納 echo $one."<br>"; $two = fgets($file); //二行目を変数に格納 echo $two."<br>"; fclose($file); //ファイルを閉じる ?> |
上記のコードはファイルの一行目と二行目を変数に格納し、出力したコードになります。「fgets()」一回で一行目、二回目で二行目を取得という感じですね。
すべての行を取得し出力する方法
繰り返し処理「while()」を使用することで、ファイル内のデータを全て出力することができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php //fgets(読み込みたいファイル名); $file = fopen("test.txt" , "r"); //モード「"r"」でファイルをオープン $test = fgets($file); //ファイルの一行目を取得 while($test){ //「$test」にデータが存在する限り繰り返し echo $test."<br>"; //「$test」を出力する $test = fgets($file); //「$test」にファイルのデータを格納する(データがなくなったら空になる) } fclose($file); //ファイルを閉じる ?> |
実行結果です。
「while()」の引数に、データを取得した変数を記述し、繰り返し文の最後に「fgets()」でデータを取得することで、ファイルからデータが「false」になるまで出力が繰り返される仕組みです。
今回は「while()」を使用しましたが「for()」などの繰り返し文を使用することで、指定した回数分データを取得することも可能なので、状況に応じて繰り返し文を併用していきたいですね。

