clearstatcache 함수

(PHP 4, PHP 5, PHP 7, PHP 8)

clearstatcache - 파일 상태 캐시를 지웁니다.


설명

clearstatcache(bool $clear_realpath_cache = false, string $filename = ""): void

stat(), lstat() 또는 영향을 받는 함수 목록(아래)에 나열된 다른 함수를 사용할 때 PHP는 더 빠른 성능을 제공하기 위해 해당 함수가 반환하는 정보를 캐시합니다. 그러나 어떤 경우에는 캐시된 정보를 지우고 싶을 수도 있습니다. 예를 들어, 동일한 파일이 단일 스크립트 내에서 여러 번 검사되고 해당 파일이 해당 스크립트 작업 중에 제거되거나 변경될 위험이 있는 경우 상태 캐시를 지우도록 선택할 수 있습니다. 이러한 경우 clearstatcache() 함수를 사용하여 PHP가 파일에 대해 캐시하는 정보를 지울 수 있습니다.

또한 PHP는 존재하지 않는 파일에 대한 정보를 캐시하지 않는다는 점에 유의해야 합니다. 따라서 존재하지 않는 파일에 대해 file_exists()를 호출하면 파일을 생성할 때까지 false를 반환합니다. 파일을 생성하면 파일을 삭제해도 true가 반환됩니다. 그러나 unlink()는 캐시를 자동으로 지웁니다.

메모: 이 함수는 특정 파일 이름에 대한 정보를 캐시하므로 동일한 파일 이름에 대해 여러 작업을 수행하고 특정 파일에 대한 정보가 캐시되지 않도록 요구하는 경우에만 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()이 포함됩니다.


매개변수

clear_realpath_cache
실제 경로 캐시도 지울지 여부입니다.
filename
특정 파일 이름에 대해서만 실제 경로 캐시를 지웁니다. clear_realpath_cache가 true인 경우에만 사용됩니다.

반환 값

값이 반환되지 않습니다.


Examples

예제 #1 clearstatcache() 예제

                  
<?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