スポンサーリンク
PHPでファイルを読む方法の1つに
$fp = fopen($filename, 'r');
$data = fread($fp, filesize($filename));
fclose($fp);
という、fopen, fread, fcloseを用いたものがあります。
しかし、このfilesize関数でファイルの状態(サイズ)を読み取ると、状態をPHPのキャッシュから取得してしまう場合があります。短時間に書き込み・読み出しを行うと、古くなったキャッシュを読んでしまうことがあり、古いファイルサイズを取得してしまうようです。
clearstatcache();
$fp = fopen($filename, 'r');
$data = fread($fp, filesize($filename));
fclose($fp);
このようにclearstatcache関数を利用するか、
$data = file_get_contents($filename);
このようにfile_get_contentsを利用することで、古くなったキャッシュの利用を回避でき、ファイルを全て読み取ることができるようになります。
以上となります。
ご覧いただきありがとうございました。