Forum Webscript.Ru

Программирование => PHP => Тема начата: CONFIG от 29 Марта 2002, 16:02:17

Название: Кусок текста с файла
Отправлено: CONFIG от 29 Марта 2002, 16:02:17
Как выризать кусок текста с большого файла....
В файле всего 700000 символов.....
Как выризать кусок начиная с 567456 до 567494-го символа...
Спасибо....
Название: Кусок текста с файла
Отправлено: AlieN от 29 Марта 2002, 16:15:42
это с помошью fread делается
http://www.php.net/manual/en/function.fread.php
Название: Кусок текста с файла
Отправлено: CONFIG от 29 Марта 2002, 17:01:35
AlieN А там нет о том как в віризать кусок с файла...
Название: Кусок текста с файла
Отправлено: ThE0ReTiC от 29 Марта 2002, 17:14:28
Цитировать
А там нет о том как в віризать кусок с файла

А это ты уж сам додумать должен. fread выдаст тебе в одну переменную содеримое файла. Ну а дальше:

$f = fopen("txet.txt","r");
$data = fread($f,filesize("txet.txt"));
echo$data[5];
fclose($f);
?>

например.
Название: Кусок текста с файла
Отправлено: Макс от 29 Марта 2002, 18:50:50
ThE0ReTiC
А это не сильно грузить сервер будет?
Все таки 700 000 Кб.

Мой вариант:

$begin=567456;
$end=567494;
$f = fopen("txet.txt","r");
fseek($f,$begin);
$data=fread($f,$end-$begin);
fclose($f);
Название: Кусок текста с файла
Отправлено: ThE0ReTiC от 29 Марта 2002, 18:56:37
А ты $begin и $end в байты перевел? :) для fread надо второй параметр в байтах указывать.
Цитировать

fread() reads up to length bytes from the file pointer referenced by fp.

И для fseek, кстати тоже.
Название: Кусок текста с файла
Отправлено: Макс от 29 Марта 2002, 21:54:15
Хмм..
А у меня работает (если учитывать переводы строк).
Разве один символ не равен одному байту? если да - то зачем перевод в байты, а если нет - то сколько байт занимает один символ?
Название: Кусок текста с файла
Отправлено: Артем от 30 Марта 2002, 11:02:15
Цитировать
надо второй параметр в байтах указывать.

В текстовых файлах байт всегда равен одному символу (кроме файлов, созданных редакторами типа Word и т.п.)
Название: Кусок текста с файла
Отправлено: ThE0ReTiC от 30 Марта 2002, 16:56:03
Цитировать
байт всегда равен одному символу

Это если кодировка восьмибитная. :)
Название: Кусок текста с файла
Отправлено: Макс от 30 Марта 2002, 18:08:42
Цитировать
Это если кодировка восьмибитная.

Да, здесь ты прав.
А что часто в веб-программировании применяется другая?
(кроме почтовых писем в голову ничего не приходит)
Название: Кусок текста с файла
Отправлено: ThE0ReTiC от 30 Марта 2002, 18:13:48
Цитировать
что часто в веб-программировании применяется другая?

Нечасто. Однако, я бы унифицировал.
Название: Кусок текста с файла
Отправлено: Dm от 30 Марта 2002, 18:27:59
"А в високосном байте 9 бит... "  :)

Цитировать
В текстовых файлах байт всегда равен одному символу (кроме файлов, созданных редакторами типа Word и т.п.)

без разницы, какой тип файла. Везде один символ - один байт. А вот каким образом построен формат файла - не важно.

в Word файлах для обозначения одной буквы используются несколько символов, т.к. необходимо сохранить параметры шрифтов, интервалов и т.п.
Название: Кусок текста с файла
Отправлено: ThE0ReTiC от 30 Марта 2002, 18:38:46
Цитировать
без разницы, какой тип файла.

Это unix различие  не делает. В виндах все кривее.