(PHP 4, PHP 5, PHP 7, PHP 8)
fgets — Получает строку из указателя на файл
Функция получает строку из файлового указателя.
stream
Требуется допустимый указатель на файл, который успешно открыли функцией fopen() или функцией fsockopen() и ещё не закрыли функцией fclose().
length
Чтение заканчивается, когда: а) функция прочитала length
- 1 байтов,
б) встретился конец строки (который функция включает в возвращаемое значение)
или в) наступило состояние EOF (функция достигла конца файла) —
в зависимости от того, что наступит раньше.
Чтение из потока будет продолжаться до тех пор,
пока функция не достигнет конца строки, если длину не указали.
Функция возвращает строку размером до length
- 1 байтов, которую функция прочитала
из дескриптора файла, на который указывает параметр stream
.
Функция возвращает false
, если данных для чтения не осталось.
Функция возвращает false
, если возникла ошибка.
Пример #1 Пример построчного чтения файла
<?php
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer, PHP_EOL;
}
if (!feof($fp)) {
echo "Ошибка: неожиданный сбой функций fgets()\n";
}
fclose($fp);
}
?>
Замечание: Включение опции auto_detect_line_endings во время выполнения иногда помогает исправить неправильное распознавание языком PHP концов строк при чтении файлов на Macintosh-совместимом компьютере или файлов, которые создали на Макинтоше.
Замечание:
Программистам, которые привыкли к семантике функции fgets() языка C, требуется принять во внимание разницу в том, как возвращается признак конца файла (
EOF
).