Считывание файла по n символов

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Скажите пожалуйста, как считывать файл по n символов и записывать их в переменную.
Пример
Есть test.txt, считывает по 100 символов и пишет в переменную $str, делаем в цикле while, постоянно перезаписывая $str, до тех пор пока не кончится файл.
 
Попробуйтесь обойтись байтами =)

$f=fopen("1.txt","a");
$str=fgets($f,1024);

Где 1024 - количество байтов
 
Дело в том, что мне надо по 2000 - 5000 символов.
Насколько мне известно, у fgets - ограничение либо конец строки, либо 1024 байта.
Ни первое, ни второе - меня не устраивают :)
 
Дело в том, что мне надо по 2000 - 5000 символов.
Насколько мне известно, у fgets - ограничение либо конец строки, либо 1024 байта.
Ни первое, ни второе - меня не устраивают :)
C каких пор? Она читает до конца, если второй параметр не указан.
 
ТС: Используй функцию Для просмотра ссылки Войди или Зарегистрируйся, затем перемещай указатель функцией Для просмотра ссылки Войди или Зарегистрируйся, затем опять fread и так до конца файла.



C каких пор? Она читает до конца, если второй параметр не указан.
С таких пор:
http://php.net/manual/ru/function.fgets.php написал(а):
Чтение заканчивается, когда количество прочитанных байтов достигает length - 1, по достижении конца строки (который включается в возвращаемое значение) или по достижении конца файла (что бы ни встретилось первым). Если длина не указана, по умолчанию ее значение равно 1 килобайту или 1024 байтам.
 
Ну, русский мануал по PHP я в глаза не видел, а вот что сказано в EN версии:

Reading ends when length - 1 bytes have been read, on a newline (which is included in the return value), or on EOF (whichever comes first). If no length is specified, it will keep reading from the stream until it reaches the end of the line.

Там же указано, что
по умолчанию ее значение равно 1 килобайту или 1024 байтам
актуально только до 4.3.0
 
"it will keep reading from the stream until it reaches the end of the line. "
Это мне тоже не подходит, потому как в 2000 символов может быть несколько строк ;)
 
А почему все смотрят только в сторону чтения файла?
Ведь можно бинарно прочитать файл полностью и потом в 2ом цикле выкусывать по 100 байт.
 
А почему все смотрят только в сторону чтения файла?
Ведь можно бинарно прочитать файл полностью и потом в 2ом цикле выкусывать по 100 байт.
Наверное потому 100 символов != 100 байт, а также потому что считать файл на 100 метров - это жестоко по отношению к ресурсам
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху