Описание
string
fgets ( resource handle [, int length] )
Возвращает строку размером в length - 1 байт, прочитанную
из дескриптора файла, на который указывает параметр handle.
Чтение заканчивается, когда количество прочитанных байтов достигает
length - 1, по достижении конца строки
(который включается в возвращаемое значение) или по достижении конца файла
(что бы ни встретилось первым). Если длина не указана, по умолчанию ее
значение равно 1 килобайту или 1024 байтам.
В случае возникновения ошибки функция возвращает FALSE.
Наиболее распространенные ошибки:
Программисты, привыкшие к семантике 'C' функции fgets(),
должны принимать во внимание разницу в том, каким образом возвращается
признак достижения конца файла (EOF).
Указатель на файл должен быть корректным и указывать
на файл, успешно открытый функциями fopen() или
fsockopen().
Ниже приведен простой пример:
Пример 1. Построчное чтение файла
<?php $handle = fopen("/tmp/inputfile.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); ?>
|
|
Замечание:
Параметр length стал необязательным, начиная
с PHP версии 4.2.0. Если этот параметр опущен, длина строки принимается
за 1024. С версии PHP 4.3, отсутствие параметра length
будет приводить к чтению потока до конца строки. Если длина большинства строк
в файле превышает 8 килобайт, наиболее эффективным решением в отношении
ресурсов, используемых скриптом, будет указание максимальной длины строки.
Замечание:
Данная функция может корректно обрабатывать двоичные данные, начиная
с версии PHP 4.3. Более ранние версии не обладали этой функциональностью.
Замечание: Если у вас возникают проблемы
с распознаванием PHP окончания строк при чтении
файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных
на Macintosh-совместимом компьютере, необходимо включить опцию
auto_detect_line_endings.
См. также fread(),
fgetc(),
stream_get_line(),
fopen(),
popen(),
fsockopen() и
stream_set_timeout().