PHPのfwrite()
は、ファイルが存在しなくなっても、ファイルポインタがあれば書き込み続けられる。
$filename = '/tmp/hoge';
file_exists($filename) && unlink($filename);
$file = fopen($filename, 'w+b');
unlink($filename); // これによりファイルが存在しなくなる
foreach (range(1, 1000) as $i) {
fwrite($file, '.'); // エラーにならない
}
var_dump(file_get_contents($filename)); //=> bool(false)
rewind($file);
var_dump(strlen(stream_get_contents($file))); //=> int(1000)
どうして?