<?phpfunction read($filename) { $fp = fopen($filename, 'rb'); flock($fp, LOCK_SH); $data = @fread($fp, @filesize($filename)); fclose($fp); return $data;}function write($filename, $data) { $fp = fopen($filename, 'ab'); flock($fp, LOCK_EX); fwrite($fp, $data); fclose($fp); return mt_rand(1, 999);}$file = './wr.txt'; //原文件是空的echo 'r1: ', read($file), '|<br/>';echo 'w1: ', write($file, 'a'), '|<br/>';echo 'r2: ', read($file), '|<br/>';echo 'w2: ', write($file, 'b'), '|<br/>';echo 'r3: ', read($file), '|<br/>';?>
r1: |w1: 745|r2: |w2: 404|r3: |
r3: ab|
ab
clearstatcache -- ファイル ステータス キャッシュをクリアします
この関数は、特定のファイル名の情報をキャッシュするため、同じファイル名に対して複数の操作を実行する場合にのみ、clearstatcache を呼び出す必要があります。ファイル情報をキャッシュしないようにする必要があります ()。
影響を受ける関数には、stat()、lstat()、file_exists()、is_writable()、is_readable()、is_executable()、is_file()、is_dir()、is_link()、filectime()、fileatime()、filemtime が含まれます。 ()、fileinode()、filegroup()、fileowner()、filesize()、filetype()、および fileperms()。
わかりました。キャッシュが原因であることがわかりました。