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 "; 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 ?>
输出:
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 ! : )