When using URL as a filename, such as "http://..." or "php://stdin", and also have the fopen wappers on, and you get a 'RuntimeException' error, try using "NoRewindIterator" class to a SplFileObject instance.
<?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";
}
?>
While opening a file, a rewind method will be called, but these URL iterators cannot be rewind, so you'll get a "Fatal error: Uncaught exception 'RuntimeException' with message 'Cannot rewind file ...'" error.SplFileObject::__construct
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SplFileObject::__construct
Референца за `splfileobject.construct.php` со подобрена типографија и навигација.
SplFileObject::__construct
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::__construct — Конструирај нов објект од датотека
= NULL
string
$filename,string
$mode = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO,bool
$useIncludePath = false,?resource
$context = null)
Конструирај нов објект од датотека.
Параметри
filename-
Датотеката за читање.
СоветиURL може да се користи како име на датотека со оваа функција ако fopen обвивки се овозможени. Погледнете fopen() за повеќе детали за тоа како да го специфицирате името на датотеката. Погледнете го Поддржани протоколи и обвивки за линкови до информации за тоа какви способности имаат разните обвивки, белешки за нивната употреба и информации за сите предодредени променливи што може да ги обезбедат.
mode-
Режимот во кој датотеката ќе се отвори. Погледнете fopen() за список на дозволени режими.
useIncludePath-
Дали да се пребарува во include_path for
filename. context-
Валиден ресурс за контекст креиран со stream_context_create().
Errors/Exceptions
Фрла RuntimeException ако filename не може да се отвори.
Фрла LogicException ако filename е директориум.
Примери
Пример #1 SplFileObject::__construct() example
Овој пример ја отвора тековната датотека и ги итерира нејзините содржини ред по ред.
<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
echo "Line $line_num is $line";
}
?>Горниот пример ќе прикаже нешто слично на:
Line 0 is <?php
Line 1 is $file = new SplFileObject(__FILE__);
Line 2 is foreach ($file as $line_num => $line) {
Line 3 is echo "Line $line_num is $line";
Line 4 is }
Line 5 is ?>
Види Исто така
- (PHP 5 >= 5.1.2, PHP 7, PHP 8) - Враќа SplFileObject објект за датотеката
- fopen() - Отвора датотека или URL