clearstatcache

clearstatcache 

clearstatcache — 清除文件状态缓存

 void clearstatcache ([ bool $clear_realpath_cache = false [, string $filename ]] ) 

当使用 stat()lstat() 或者任何列在受影响函数表(见下面)中的函数时,PHP 将缓存这些函数的返回信息以提供更快的性能。然而在某些情况下,你可能想清除被缓存的信息。例如如果在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有被删除或修改的危险时,你需要清除文件状态缓存。这种情况下,可以用 clearstatcache() 函数来清除被 PHP 缓存的该文件信息。

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

受影响的函数包括 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()

 参数:

clear_realpath_cache

是否清除真实路径缓存

filename

清除文件名指定的文件的真实路径缓存; 只在 clear_realpath_cache 为 TRUE 时启用

返回值:

没有返回值。

 1 <?php
 2 $file = 'output_log.txt';
 3 
 4 function get_owner($file)
 5 {
 6     $stat = stat($file);
 7     $user = posix_getpwuid($stat['uid']);
 8     return $user['name'];
 9 }
10 
11 $format = "UID @ %s: %s\n";
12 
13 printf($format, date('r'), get_owner($file));
14 
15 chown($file, 'ross');
16 printf($format, date('r'), get_owner($file));
17 
18 clearstatcache();
19 printf($format, date('r'), get_owner($file));
20 ?>
View Code

输出:

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

  

 

get ! : )
 
posted @ 2016-08-29 10:52  我要做李白  阅读(171)  评论(0编辑  收藏  举报