SplFileObject::__construct
(PHP 5 >= 5.1.0)
SplFileObject::__construct — Construct a new file object.
Description
$filename
[, string $open_mode
= "r"
[, bool $use_include_path
= false
[, resource $context
]]] )Construct a new file object.
Parameters
-
filename
-
The file to read.
TipA URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename. See the Supported Protocols and Wrappers for links to information about what abilities the various wrappers have, notes on their usage, and information on any predefined variables they may provide.
-
open_mode
-
The mode in which to open the file. See fopen() for a list of allowed modes.
-
use_include_path
-
Whether to search in the include_path for
filename
. -
context
-
A valid context resource created with stream_context_create().
Return Values
No value is returned.
Errors/Exceptions
Throws a RuntimeException if the filename
cannot be opened.
Examples
Example #1 SplFileObject::__construct() example
This example opens the current file and iterates over its contents line by line.
<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
echo "Line $line_num is $line";
}
?>
The above example will output something similar to:
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 ?>
See Also
- SplFileInfo::openFile() - Gets an SplFileObject object for the file
- fopen() - Opens file or URL
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Обработка файлов
- Функция SplFileObject::__construct() - Конструктор класса SplFileObject
- Функция SplFileObject::current() - Получение текущей строки файла
- Функция SplFileObject::eof() - Проверяет, достигнут ли конец файла
- Функция SplFileObject::fflush() - Сбрасывает буфер вывода в файл
- Функция SplFileObject::fgetc() - Читает символ из файла
- Функция SplFileObject::fgetcsv() - Получение строки файла и ее разбор в соответствии с CSV разметкой
- Функция SplFileObject::fgets() - Читает строку из файла
- Функция SplFileObject::fgetss() - Получение строки из файла с очисткой от HTML тэгов
- Функция SplFileObject::flock() - Портируемая блокировка файла
- Функция SplFileObject::fpassthru() - Выводит все оставшееся содержимое файла в выходной поток
- Функция SplFileObject::fputcsv() - Выводит поля массива в виде строки CSV
- SplFileObject::fread
- Функция SplFileObject::fscanf() - Разбор строки файла в соответствии с заданным форматом
- Функция SplFileObject::fseek() - Перевод файлового указателя на заданную позицию
- Функция SplFileObject::fstat() - Получает информацию о файле
- Функция SplFileObject::ftell() - Определение текущей позиции файлового указателя
- Функция SplFileObject::ftruncate() - Обрезает файл до заданной длины
- Функция SplFileObject::fwrite() - Запись в файл
- Функция SplFileObject::getChildren() - Метод-заглушка
- Функция SplFileObject::getCsvControl() - Получает символы разделителя и ограничителя для CSV
- Функция SplFileObject::getCurrentLine() - Псевдоним метода SplFileObject::fgets
- Функция SplFileObject::getFlags() - Получает флаги настройки объекта SplFileObject
- Функция SplFileObject::getMaxLineLen() - Получает максимальную длину строки
- Функция SplFileObject::hasChildren() - Класс SplFileObject не имеет наследников
- Функция SplFileObject::key() - Получение номера строки
- Функция SplFileObject::next() - Читает следующую строку
- Функция SplFileObject::rewind() - Перевод файлового указателя в начало файла
- Функция SplFileObject::seek() - Перевод файлового указателя на заданную строку
- Функция SplFileObject::setCsvControl() - Устанавливает символы разделителя и ограничителя для CSV
- Функция SplFileObject::setFlags() - Установливает флаги для SplFileObject
- Функция SplFileObject::setMaxLineLen() - Устанавливает максимальную длину строки
- Функция SplFileObject::__toString() - Псевдоним SplFileObject::current
- Функция SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)
Коментарии
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.