filectime()没有改变(即使手动删除文件)

时间:2017-08-01 12:26:14

标签: php

我有以下代码:

<?php

function logAction($action,$file){

    /**
     * delete the file
     */

    if((time()-filectime(ROOT_PATH.'/logs/'.$file)) > LOG_CLEAN){

        unlink(ROOT_PATH.'/logs/'.$file);

    };

    /**
     * write the action
     */

    $f = fopen(ROOT_PATH.'/logs/'.$file,'a');

    $data = "[".date('d-m-Y H:i:s')."] ".$action."\n";

    fwrite($f,$data);

    fclose($f);

    return true;

};

?>

问题是:filectime()没有更改值。当我把它写下来时,它会保持不变,即使生成了一个新文件(例如,如果我手动删除了日志文件)。

我的代码有什么问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

结果filectime()函数被缓存。使用clearstatcache()清除缓存。 clearstatcache()函数清除文件状态缓存。查看此处的文档php filectime() php clearstatcache()