Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么不是';将部分块写入文件时,文件修改时间是否会改变?_Php - Fatal编程技术网

Php 为什么不是';将部分块写入文件时,文件修改时间是否会改变?

Php 为什么不是';将部分块写入文件时,文件修改时间是否会改变?,php,Php,我有这个测试代码: function create_file($path, $size_b) { $f = fopen($path, "w"); fseek($f, $size_b - 1, SEEK_CUR); fwrite($f, "a"); fclose($f); } function write_file_chunk($path, $offset, $chunk) { $f = fopen($path, "r+"); fseek($f,

我有这个测试代码:

function create_file($path, $size_b) {
    $f = fopen($path, "w");
    fseek($f, $size_b - 1, SEEK_CUR);
    fwrite($f, "a");
    fclose($f);
}

function write_file_chunk($path, $offset, $chunk) {
    $f = fopen($path, "r+");
    fseek($f, $offset, SEEK_CUR);
    fwrite($f, $chunk);
    fclose($f);
}

$name = "filemtime_test";
create_file($name, 128);
$m1 = filemtime($name);
sleep(1);
write_file_chunk($name, 0, "hey");
$m2 = filemtime($name);
echo $m1 . " " . $m2 . " " . ($m1 === $m2);

部分写入工作正常,我知道,但它似乎不会改变文件修改时间,为什么不呢?是否有其他方法可以检测到文件以这种方式被修改?

出于性能原因,当在同一脚本实例中多次调用此类文件信息函数时,PHP会缓存这些数据

:

注意:此函数的结果将被缓存。有关更多详细信息,请参阅


您是否首先考虑了filemtime手册中关于缓存的内容?哦,是的,clearstatcache();修复它