1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

PHP clearstatcache() 函数

定义和用法

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

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

会进行缓存的函数,即受 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()

语法

clearstatcache()

例子

<?php  //检查文件大小  echo filesize("test.txt");  $file = fopen("test.txt", "a+");  // 截取文件  ftruncate($file,100);  fclose($file);  //清除缓存并再次检查文件大小  clearstatcache();  echo filesize("test.txt");  ?>

输出结果:

792

100

必须注意的是,对于不存在的文件,PHP 并不会缓存其信息。所以如果调用 file_exists() 来检查不存在的文件,在该文件没有被创建之前,它都会返回 FALSE。如果该文件被创建了,就算以后被删除,它都会返回 TRUE 函数 unlink() 会自动清除该缓存.

<?php  $file = 'output_log.txt';    function get_owner($file)  {      $stat = stat($file);      $user = posix_getpwuid($stat['uid']);      return $user['name'];  }    $format = "UID @ %s: %s\n";    printf($format, date('r'), get_owner($file));    chown($file, 'ross');  printf($format, date('r'), get_owner($file));    clearstatcache();  printf($format, date('r'), get_owner($file));  ?>

输出:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root

UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross

原文链接:https://www.qiquanji.com/post/8564.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: