gpt4 book ai didi

file_exists() 或类似函数的 php 缓存过期时间

转载 作者:行者123 更新时间:2023-12-04 17:59:47 27 4
gpt4 key购买 nike

根据 file_exists() 的 php 文档

The results of this function are cached. See clearstatcache() for more details.

但它没有提供有关 php 将在缓存中保存此信息多长时间的信息。我已经检查了 clearstatcache() 的文档但没有这样的信息。这次谷歌搜索也没有帮助。

我正在构建一个应用程序,其中调用 file_exists 以生成一些输出,并且由于任何用户都可以随时删除正在检查的文件,因此我需要在生成输出之前确定它是否真的存在。

在 file_exists() 之前调用 clearcache() 将解决这个问题,但出于好奇,我想知道 PHP 将缓存文件信息多长时间(默认时间)以及我可以通过哪个变量更改缓存过期时间?

编辑 1: 实际上,删除文件后再次使用 file_exists() 检查返回 false,但如果是这样,文档中写的缓存是什么意思?

编辑 2:

<? 
var_dump(file_exists('/home/user/filecheck.php'));
sleep(20);
// after running script, sleep for 20 seconds just to quickly delete this file manually before file_exists is called again.
// unlink is not used since as per documentation it'll clear php cache.
var_dump(file_exists('/home/user/filecheck.php'));
?>

脚本的响应是

boolean true

boolean false

这意味着即使对于相同的执行文件存在,php 也不会缓存 file_exists 信息,那么为什么在文档中写着“这个函数的结果被缓存”?

最佳答案

stat 缓存将缓存信息的时长可在您的 php.ini 文件中使用 realpath_cache_ttl 变量进行配置。默认似乎是 120 秒。

关于file_exists() 或类似函数的 php 缓存过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960069/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com