0
为什么我的PHP脚本挂起?
$path = tempnam(sys_get_temp_dir(), '').'.txt';
$fileInfo = new \SplFileInfo($path);
$fileObject = $fileInfo->openFile('a');
$fileObject->fwrite("test line\n");
var_dump(file_exists($path)); // bool(true)
var_dump(file_get_contents($path)); // string(10) "test line
// "
var_dump(iterator_count($fileObject)); // Hangs on this
如果我删除最后一行(iterator_count(...
)以及与此替换:
$i = 0;
$fileObject->rewind();
while (!$fileObject->eof()) {
var_dump($fileObject->eof());
var_dump($i++);
$fileObject->next();
}
// Output:
// bool(false)
// int(0)
// bool(false)
// int(1)
// bool(false)
// int(2)
// bool(false)
// int(3)
// bool(false)
// int(4)
// ...
的$fileObject->eof()
始终返回false,所以我得到一个无限循环。
为什么会发生这些事情?我需要得到一个行数。
即使我以'r'模式创建第二个SplFileObject,也会发生这种情况。你已经回答了这个问题,谢谢。我为我的真正问题创建了一张新票:http://stackoverflow.com/questions/11706174 – mattalxndr 2012-07-29 02:29:28