関数 clearstatcache

関数 clearstatcache は、ファイルの状態情報を保存するキャッシュをクリアします。PHPは、filesize、filemtime などのファイル操作関数の結果をキャッシュします。スクリプトの実行中に変更された可能性のあるファイルについて最新のデータを取得する必要がある場合に、この関数は役立ちます。

構文

phpclearstatcache([bool $clear_realpath_cache = false], [string $filename = null]);

例

パラメータなしでの関数使用の最も簡単な例:

php<?php
  clearstatcache();
  echo 'ファイルキャッシュがクリアされました';
?>

コード実行結果:

php'ファイルキャッシュがクリアされました'

例

特定のファイルのキャッシュをクリアする例:

php<?php
  $file = 'test.txt';
  clearstatcache(true, $file);
  echo 'ファイルのキャッシュをクリアしました: ' . $file;
?>

コード実行結果:

php'ファイルのキャッシュをクリアしました: test.txt'

例

ファイルサイズを取得する実用的な例:

php<?php
  $file = 'data.txt';
  
  // 最初のサイズ取得
  $size1 = filesize($file);
  
  // ファイルを変更する(実際のコードでは、他のプロセスによってファイルが変更された可能性がある)
  file_put_contents($file, 'new content', FILE_APPEND);
  
  // キャッシュをクリアせずに2回目のサイズ取得
  $size2 = filesize($file);
  
  // キャッシュをクリアし、最新のサイズを取得
  clearstatcache(true, $file);
  $size3 = filesize($file);
  
  echo "Size1: $size1, Size2: $size2, Size3: $size3";
?>

コード実行結果:

php'Size1: 10, Size2: 10, Size3: 20'

関連項目

  • ファイルの存在を確認する関数 file_exists、
  • ファイルサイズを返す関数 filesize、
  • 変更時間を返す関数 filemtime、