当使用 URL 作为文件名,例如 "http://..." 或 "php://stdin",并且也启用了 fopen 包装器时,如果出现 "RuntimeException" 错误,请尝试将 "NoRewindIterator" 类用于 SplFileObject 实例。
<?php
$url = 'http://sample.com/data.csv';
$file = new NoRewindIterator( new SplFileObject( $url ) );
foreach ($file as $line_num => $line) {
echo "Line $line_num is $line";
}
?>
打开文件时,将调用 rewind 方法,但这些 URL 迭代器无法回绕,因此您将收到 "Fatal error: Uncaught exception 'RuntimeException' with message 'Cannot rewind file ...'" 错误。