到期日作为文件属性或在缓存机制的单独文件中

时间:2010-03-02 13:41:20

标签: php file caching

我正在用PHP创建一个简单的缓存库。目前,当我存储一个值时,我创建了两个文件:一个包含值,另一个存储创建时间。我想要一个强大的解决方案,我不确定使用文件日期属性是多么安全。您认为将文件日期属性用于到期时间是否安全,而是将其存储在单独的文件中?

它将取决于操作系统吗?我希望我的库在windows和linux上的行为相同。

2 个答案:

答案 0 :(得分:1)

在一个小的缓存函数中,我使用的是filemtime函数,它给出了文件更改的时间。它在windows和linux上都运行良好。 在使用clearstatcache()之前不要忘记使用filemtime,因为结果会被缓存。

function in_cache($expires_in_secs, $filename){
    clearstatcache(); // Clear file status cache held by PHP

    /* if (file_exists($filename) and  filesize($filename) > 0 ) {  */
    if (file_exists($filename) ) {
        if( time() >= (filemtime($filename) + $expires_in_secs) ){  return false; }
        else { return true; }
    }
    else { return false; }
}

答案 1 :(得分:0)

在Linux下,有三个不同的时间与文件,创建时间,修改时间和访问时间相关联。显然,使用访问时间是不合适的,但创建时间的使用应该适合您的目的。但是,您始终冒着系统用户的风险,将添加,删除或移动缓存文件夹中的文件。

另一种方法是使用一个文件来存储所有文件名及其日期的列表或散列。这意味着您存储每个文件一次,并且只添加一个其他文件来存储到期信息。

您可以使用serialize()函数根据需要轻松存储和检索信息文件。

http://php.net/manual/en/function.serialize.php

相关问题