ファイルの読込と書込の実験2(1つ上のサンプルにflock()でファイルロック機能を加えた)

[送信]ボタンをクリックするとinputのデータがサーバ送られて、mytext3.txtの先頭に入る。
1つ前のサンプルと同じだが、このサンプルではflock()でファイルロック機能を追加している。
いちばん最初のmytext3.txtの中身は次のとおり。
--------------------
1.BEGIN
2.WELCOME
3.END
--------------------

[追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字]fff あ あ [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] どれどれ・・。 [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] id int not null primary key auto_increment, id int not null primary key auto_increment, id int not null primary key auto_increment, [追加文字] [追加文字] [追加文字] [追加文字] wfwefwefw [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字9] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] moji [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] AUCH [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] < [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] [追加文字] 1.BEGIN 2.WELCOME 3.END
source

<?php
if($mySubmit)	{
	$filename = "mytext3.txt";	//mytext3.txtを変数$filenameに入れ
	$fpointer = fopen($filename,"r+");	//$filenameを読込/書込可能でオープンしてファイルポインタを先頭に置き
	flock($fpointer,2);	//同時に書き込めないようにファイルをロックする
	$contents = fread($fpointer,filesize($filename));	//$filenameをポインタ先頭から最後まで(ファイルサイズ分)読み込んで変数$contentsに入れ
	$add_contents = $HTTP_POST_VARS["myString"]."\n";	//変数$add_contentsにはフォームから送られたname="myString"の値を入れ
	$new_contents = $add_contents.$contents;	//変数$new_contentsに$add_contentsと$contentsを連結した値を入れ
	rewind($fpointer);	//書き込む前にファイルポインタを先頭に移動して
	fwrite($fpointer,$new_contents);	//$new_contentsを一気に書き込む
	print $new_contents;	//$new_contentsを画面に書き出し
	flock($fpointer,3);	//ファイルロック解除
	fclose($fpointer);	//ファイルを閉じる
} else	{
	$filename = "mytext3.txt";	//mytext3.txtを変数$filenameに入れ
	$fpointer = fopen($filename,"r");	//$filenameを読込専用でオープンしてファイルポインタを先頭に置き
	flock($fpointer,2);	//同時に書き込めないようにファイルをロックする
	$contents = fread($fpointer,filesize($filename));	//$filenameをポインタ先頭から最後まで(ファイルサイズ分)読み込んで変数$contentsに入れ
	print $contents;	//$contentsを画面に書き出し
	flock($fpointer,3);	//ファイルロック解除
	fclose($fpointer);	//ファイルを閉じる
}
?>