ファイルを表示する
isset()関数は、変数がセットされており、それが NULL でないことを調べます。
これをやっておかないと、すぐにファイルが表示されちゃうんで(^^;
1つ前で書きんだファイル「sample.txt」の内容を表示します。(ファイルポインタが終端に達するまで)
fgets()関数は、ファイルから1行(改行文字まで)読み込みます。
改行文字を検出できないときは、パラメータで指定した長さ-1バイトに達したときまで読み込まれます。
ボタンが押されていません。
ソース
<form method=post action=""> <input type="hidden" name="answer" value="start"> <input type="submit" value="実行"> </form> <?php if(isset($_POST['answer'])) { $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルをロック flock($file,LOCK_EX); //ファイルのデータを表示する while (!feof($file)){ $moji = fgets($file, 1000); echo $moji."<br>"; } flock($file,LOCK_UN); fclose($file); } else { echo 'ボタンが押されていません。'; } ?>
配列に入れてから表示
次の例では、ファイルのデータを一度配列入れてから表示しています。
ソース
<?php $file_name = "sample.txt"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー $file_name"); //ファイルをロック flock($file,LOCK_EX); //ファイルのデータを配列に入れる $count = 1; while (!feof($file)){ $moji[$count] = fgets($file, 1000); $count = $count + 1; } //配列のデータを表示する for ($n = 1; $n<$count;$n++) { echo $moji[$n]."<br>"; } //ロック解除 flock($file,LOCK_UN); //ファイルを閉じる fclose($file); ?>