2
提供了以下示例代码文件: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,我在sometestfile_new上面填满2, 我在Linux上运行这个,这是inode相关吗? 如果在每个循环之后添加rewind(),则会在覆盖时间点之后读取新文件。
感谢您的回答,您是否知道fopen会缓存文件的文档资源?就像我说的使用rewind()会将读取过程打开到新文件。 这也可能与此有关:stream_set_read_buffer(),但该函数仅从5.3.3 –
开始引入,不需要记录。只要fopen读取一个文件,假设'$ file = fopen('file.txt','a')'',那个变量就会有''file.txt''的内容,所以它不会在发生''fopen()'后会发生什么情况,变量将拥有内容,直到解析脚本。 –