Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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 确定smarty何时创建缓存文件_Php_Smarty - Fatal编程技术网

Php 确定smarty何时创建缓存文件

Php 确定smarty何时创建缓存文件,php,smarty,Php,Smarty,我有一个cms,每个页面在数据库中存储上次更新的时间。我已经在smarty(3.1)中设置了缓存,但是如果页面自上次保存的缓存文件后更新,我希望能够清除缓存并强制它创建新的缓存文件,但要做到这一点,我需要知道缓存文件是何时创建的 有没有办法获取缓存文件的时间戳 谢谢我不确定Smarty内部是否有此功能。但请分别查看和以确定文件最后一次修改和更改的时间 从php.net: $filename = 'somefile.txt'; if (file_exists($filename)) { e

我有一个cms,每个页面在数据库中存储上次更新的时间。我已经在smarty(3.1)中设置了缓存,但是如果页面自上次保存的缓存文件后更新,我希望能够清除缓存并强制它创建新的缓存文件,但要做到这一点,我需要知道缓存文件是何时创建的

有没有办法获取缓存文件的时间戳


谢谢

我不确定Smarty内部是否有此功能。但请分别查看和以确定文件最后一次修改和更改的时间

从php.net:
$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last changed: " . date("F d Y H:i:s.", filectime($filename));
}
修改时间和更改时间之间的差异:

注意:在大多数Unix文件系统中,当文件的inode数据发生更改时,文件被视为已更改;也就是说,当inode中的权限、所有者、组或其他元数据更新时。另请参见filemtime()和fileatime()


我不确定Smarty是否有任何内部原因。但请分别查看和以确定文件最后一次修改和更改的时间

从php.net:
$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last changed: " . date("F d Y H:i:s.", filectime($filename));
}
修改时间和更改时间之间的差异:

注意:在大多数Unix文件系统中,当文件的inode数据发生更改时,文件被视为已更改;也就是说,当inode中的权限、所有者、组或其他元数据更新时。另请参见filemtime()和fileatime()


我最近回答了一个类似的问题:


我最近回答了一个类似的问题:



谢谢,我真的希望有一些内部的东西(虽然我确实找不到),比如手动计算缓存文件名并进行检查,如果他们更改了文件名的生成方式,这似乎只会导致问题。@Al_给它一些时间。也许这里的其他人比我更了解Smarty的内部结构:)@Al_-实际上,您可能想做的是扩展该类,该类包含一个继承自的
fetchTimestamp()
方法。@JaredFarris Smarty 3.1允许您完全访问可能需要的所有信息。文档中并没有提到这一点。谢谢,我真的希望有一些内部的东西(虽然我确实找不到),比如手动计算缓存文件名并进行检查,如果他们更改文件名的生成方式,这似乎只会导致问题。@Al_u给点时间。也许这里的其他人比我更了解Smarty的内部结构:)@Al_-实际上,您可能想做的是扩展该类,该类包含一个继承自的
fetchTimestamp()
方法。@JaredFarris Smarty 3.1允许您完全访问可能需要的所有信息。只是文件里没有提到,对!没有想到这一点;我在想一个
->getTimestamp()
:s
创建一个类来封装OP的功能不是件坏事<代码>:P
Smarty_CacheResource::getTimestamp()用于从存储器(文件、数据库等)中获取缓存对象的修改时间。但是,它可以根据其他数据库表检查mtime,如果缓存已经过时,则返回false。看看demo/cacheresource.mysqls.php:)Smarty 3.1.4可能会在下周发布。然后,自定义缓存资源也将自动受益于缓存锁定(除其他外),我不确定您指向了哪里()。那么,您的意思是,由于某种竞争条件,当前
Smarty_CacheResource
可能会报告过期的时间戳吗?(注意,我并不怀疑你是对的,只是试着理解你说的话。)对!没有想到这一点;我在想一个
->getTimestamp()
:s
创建一个类来封装OP的功能不是件坏事<代码>:P
Smarty_CacheResource::getTimestamp()用于从存储器(文件、数据库等)中获取缓存对象的修改时间。但是,它可以根据其他数据库表检查mtime,如果缓存已经过时,则返回false。看看demo/cacheresource.mysqls.php:)Smarty 3.1.4可能会在下周发布。然后,自定义缓存资源也将自动受益于缓存锁定(除其他外),我不确定您指向了哪里()。那么,您的意思是,由于某种竞争条件,当前
Smarty_CacheResource
可能会报告过期的时间戳吗?(注意,我并不怀疑你是对的,只是试着理解你在说什么。)