chown
copy
ファイルシステム 関数
PHP Manual

# clearstatcache

(PHP 4, PHP 5)

clearstatcache — ファイルのステータスのキャッシュをクリアする

### 説明

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

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

  realpath キャッシュをクリアするか否か。

`filename`

  realpath キャッシュを特定のファイル名にクリアする。 `clear_realpath_cache` が `TRUE` の場合にのみ使用。

### 返り値

値を返しません。

### 変更履歴

バージョン | 説明
--- | ---
5.3.0 | オプションのパラメータ `clear_realpath_cache` と `filename` が追加されました。

### 例

例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

chown
copy
ファイルシステム 関数
PHP Manual