php - 変化しているファイルを恐れる

php file file-io buffer fread

次のサンプルコードを提供しました:

<?php
$handle = fopen("/tmp/test_file/sometestfile", "r");
$contents = '';
while (!feof($handle)) {
    $contents = fread($handle, 10);
    print $contents;
    sleep(1);
}
fclose($handle);
?> 


sometestfile(私の場合はtxtファイル)が読み取りループ中に変更された場合、phpプログラムが古いファイルから読み取りを続けているのはなぜですか?
1でいっぱいで、2でいっぱいになっているsometestfile_newを猫にしたとしましょう。
これをLinuxで実行していますが、このiノードは関連していますか?
各ループの後にrewind()が追加された場合、上書き時点の後、新しいファイルが代わりに読み取られます。
答え
php.netから

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )


fopen()は、filenameで指定された名前付きリソースをストリームにバインドします。

fopen()と呼ばれるとすぐにファイルが「キャッシュ」され、指定したメソッドで出力されます。例は$contents = fread($handle, 10);です。

ファイルを削除しても、ファイル!feof($handle)が終了するまでそのリソースを読み取ります

fopen()を使用して他に何もすることはできません。ソースを再読み取りして印刷を続けることはできません。
関連記事

php - グループのFacebookアプリケーションを作成する方法

php - PHP変数をJavaScriptとJavaScriptのifステートメントに渡す[重複]

php - Codeigniterでのウォーターマークの回転

php - コメントの投稿後にユーザーをリダイレクトする方法

php - Wordpress:実行時間の長いプラグインスクリプトによってブロックされたフロントエンド

php - 古いPHPコードをオブジェクト指向にするためのデザインパターン

php - PHP関数に渡された変数の名前を取得しますか?

php - PHPとinterbaseのヘルプ

php - ホストのphpプロセスを強制終了

php - あるクラスが別のクラスに依存しているテストファイルを再編成するためのオプション?