fgets () и fread () - в чем разница?
3 ответов
fgets
читает в строке -- т. е. он остановится на новой строке.
fread
читает исходные данные -- Не указан (или по умолчанию) количество байтов, независимо от любой новой строки, которая может или не может присутствовать.
Скорость не является причиной для использования одной над другой, так как эти две функции просто не делают то же самое :
fread () для двоичных данных и fread имеет ограничение на количество символов, которые вы можете прочитать
$source_file = fopen( $filename, "r" ) or die("Couldn't open $filename");
while (!feof($source_file)) {
$buffer = fread($source_file, 5);
var_dump($buffer); //return string with length 5 chars!
}
число 5-байты длины были прочитаны .
функция fgets считывает одну строку из текстового файла. Он читает так долго, пока не будет достигнут конец текущей строки (или конец файла). Поэтому, если вы хотите прочитать одну строку из текстового файла, вы должны использовать fgets. Функция fread не только считывает до конца строки, но и до конца файла [например, fread($handle)] или столько байтов, сколько указано в качестве параметра [например, fread($handle, 1024)]. Итак, если вы хотите прочитать полный файл, независимо от того, это текстовый файл со всеми содержащимися строками или произвольными необработанными данными из файла, вы должны использовать fread.