ファイルを表示する
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);
?>