ファイルの読込と書込の実験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); //ファイルを閉じる
}
?>