PHP clearstatcache() 函数

定义和用法

clearstatcache() 函数清除文件状态缓存。

clearstatcache() 函数会缓存某些函数的返回信息,以便提供更高的性能。但是有时候,比如在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存,以便获得正确的结果。要做到这一点,就需要使用 clearstatcache() 函数。

会进行缓存的函数,即受 clearstatcache() 函数影响的函数:

  • stat()
  • lstat()
  • file_exists()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • filectime()
  • fileatime()
  • filemtime()
  • fileinode()
  • filegroup()
  • fileowner()
  • filesize()
  • filetype()
  • fileperms()

语法

  1. clearstatcache()

例子

  1. <?php
  2. //检查文件大小
  3. echo filesize("test.txt");
  4.  
  5. $file = fopen("test.txt", "a+");
  6.  
  7. // 截取文件
  8. ftruncate($file,100);
  9. fclose($file);
  10.  
  11. //清除缓存并再次检查文件大小
  12. clearstatcache();
  13. echo filesize("test.txt");
  14. ?>

输出:

  1. 792
  2. 100