Вот код:
$file=fopen("file.txt","r");
$fr=fread($file,100);
print $fr;
Как читать файл не с первой строки,а допустим с 3?
Спустя 2 минуты, 56 секунд (3.09.2010 - 14:36) Basili4 написал(а):
fseek()
Спустя 2 минуты, 11 секунд (3.09.2010 - 14:38) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:36) |
fseek() |
и как с помощью только fseek() перейти на третью строку?
Спустя 4 минуты, 21 секунда (3.09.2010 - 14:42) Basili4 написал(а):
waldicom
Для начала найти fseek в гугле
затем подумать и раз готово.
Для начала найти fseek в гугле
затем подумать и раз готово.
Спустя 2 минуты, 32 секунды (3.09.2010 - 14:45) Гость_Michael написал(а):
лучше найти в гугле функцию file
Спустя 1 минута, 21 секунда (3.09.2010 - 14:46) linker написал(а):
Прочитать две строки и начать выводить с третьей
Спустя 18 секунд (3.09.2010 - 14:46) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:42) |
waldicom Для начала найти fseek в гугле затем подумать и раз готово. |
Вместо вместо пустой болтовни напиш код.
Вот тебе даже исходник:
<?php
$filename = "test.txt"
$fd = fopen($filename, 'rb');
if($fd){
// твой выход: одна строка с fseek
$str=fread($fd,100);
echo $str;
}
?>
Содержимое файла "test.txt"
Цитата |
строка 1 строка 2 строка 3 строка 4 строка 5 |
Спустя 1 минута, 15 секунд (3.09.2010 - 14:47) waldicom написал(а):
Цитата (linker @ 3.09.2010 - 13:46) |
Прочитать две строки и начать выводить с третьей |
Э неее... Товарисч хочет не зная длину строки в файле с помощью одного только fseek утсановить указатель на начало тертьей строки...
Спустя 26 минут, 46 секунд (3.09.2010 - 15:14) Basili4 написал(а):
waldicom
Почему не зная. Возможно и зная вот если зная fseek($fd,'$sizeline*3'); Если не зная то это другая история но тоже не сложно читаем в одну переменную убиваем \r разбиваем текст по \n и выводим с нужной строки.
Почему не зная. Возможно и зная вот если зная fseek($fd,'$sizeline*3'); Если не зная то это другая история но тоже не сложно читаем в одну переменную убиваем \r разбиваем текст по \n и выводим с нужной строки.
Спустя 9 минут, 54 секунды (3.09.2010 - 15:24) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 14:14) |
Почему не зная. Возможно и зная вот если зная fseek($fd,'$sizeline*3'); |
Потому что не зная. Откуда тут переменная $sizeline? Строки все одинаковы по длине?
Цитата (Basili4 @ 3.09.2010 - 14:14) |
Если не зная то это другая история но тоже не сложно читаем в одну переменную убиваем \r разбиваем текст по \n и выводим с нужной строки. |
Я написал: как с помощью только fseek() перейти на третью строку
Был дан ответ про гугл и подумать.
Я понял ответ так, что ты сможешь это сделать, а на деле пустая болтовня оказывается.
Спустя 13 минут, 42 секунды (3.09.2010 - 15:38) Basili4 написал(а):
waldicom
ТС - ничего про длины не говорил я предположил что размеры строки он знает и дал ответ. Но я дал А ты только полемику развел. П.С. и кстати ТС чдо сих пор не уточнил известны ему размеры строки или нет.
ТС - ничего про длины не говорил я предположил что размеры строки он знает и дал ответ. Но я дал А ты только полемику развел. П.С. и кстати ТС чдо сих пор не уточнил известны ему размеры строки или нет.
Спустя 4 минуты, 33 секунды (3.09.2010 - 15:42) waldicom написал(а):
Цитата (Basili4 @ 3.09.2010 - 14:38) |
ТС - ничего про длины не говорил я предположил что размеры строки он знает и дал ответ. |
Сказал - сделал. Не сделал - балабол. Все просто.
Спустя 3 минуты (3.09.2010 - 15:45) Basili4 написал(а):
waldicom
$fr=fread($file,100);
судя по коду ТС читает по 100 байт за раз судя по сему это это и есть размер строки
т.е. fseek($fr,300);
и вся песня.
$fr=fread($file,100);
судя по коду ТС читает по 100 байт за раз судя по сему это это и есть размер строки
т.е. fseek($fr,300);
и вся песня.
Спустя 13 минут, 26 секунд (3.09.2010 - 15:59) sergeiss написал(а):
Basili4 - в данном случае ты не прав Потому что более общий случай - это когда длина строки не известна. И у ТС в явном виде ничего не сказано. 100 байт - неизвестно, почему столько указано.
Спустя 12 минут, 10 секунд (3.09.2010 - 16:11) Basili4 написал(а):
sergeiss
Может быть и не прав но ТС молчит значит удовлетворился ответом
Может быть и не прав но ТС молчит значит удовлетворился ответом
Спустя 2 минуты, 3 секунды (3.09.2010 - 16:13) linker написал(а):
Во многих примерах указывают fread($fh, 1024), но это же не значит, что там строки по 1024 байт, так и здесь не факт что все строки имеют жестко длину 100 байт.
Спустя 35 минут, 17 секунд (3.09.2010 - 16:48) Wolfer написал(а):
Сори что не отвечал, сеть лагала.
Длина строк извесна, в 1 и 2 по 7 символов, а в третей 100.
Длина строк извесна, в 1 и 2 по 7 символов, а в третей 100.
Спустя 10 минут, 1 секунда (3.09.2010 - 16:58) Basili4 написал(а):
Wolfer
в третью
fseek($fd,14); должен попасть
в третью
fseek($fd,14); должен попасть
Спустя 3 минуты, 42 секунды (3.09.2010 - 17:02) linker написал(а):
А если нужно с 10 строки? А если UTF-8? А если есть "\r"?
Спустя 1 минута, 50 секунд (3.09.2010 - 17:04) Basili4 написал(а):
linker
если строки разной длины тогда это другая история.
если строки разной длины тогда это другая история.
Спустя 31 минута, 23 секунды (3.09.2010 - 17:35) Wolfer написал(а):
Цитата (Basili4 @ 3.09.2010 - 13:58) |
в третью fseek($fd,14); должен попасть |
Что значит в третью? Можно пожалуйста полный код чтения этой
Спустя 2 минуты, 45 секунд (3.09.2010 - 17:38) waldicom написал(а):
Цитата (Wolfer @ 3.09.2010 - 16:35) | ||
Что значит в третью? Можно пожалуйста полный код чтения этой |
Те че конкретно надо?
Позиционировать на любую строку или конкретно на третью?
Спустя 4 минуты, 23 секунды (3.09.2010 - 17:42) Wolfer написал(а):
Мне нужно прочитать файл, а именно третью строку в файле, в которой 100 символов (а после, ее вывести (print), но это уже не важно)
Спустя 1 час, 30 минут, 2 секунды (3.09.2010 - 19:12) Гость_Michael написал(а):
а что тогда важно?
Спустя 3 часа, 22 минуты, 22 секунды (3.09.2010 - 22:35) sergeiss написал(а):
Наиболее универсальным будет использовать file() для чтения. Если это, конечно, обычный текстовый файл.
И там уже спокойно взять нужный элемент массива. И не важно будет, какая там кодировка файла, какие там разделители между строками и т.д. и т.п.
А все остальные варианты - "от лукавого"
И там уже спокойно взять нужный элемент массива. И не важно будет, какая там кодировка файла, какие там разделители между строками и т.д. и т.п.
А все остальные варианты - "от лукавого"
Спустя 32 минуты, 37 секунд (3.09.2010 - 23:07) Basili4 написал(а):
sergeiss
А если файл ого-го какой огромный а надо взять лишь сравнимо мало строчек
А если файл ого-го какой огромный а надо взять лишь сравнимо мало строчек
Спустя 41 минута, 57 секунд (3.09.2010 - 23:49) sergeiss написал(а):
Цитата (Basili4 @ 4.09.2010 - 00:07) |
А если файл ого-го какой огромный а надо взять лишь сравнимо мало строчек |
Тогда надо использовать fgets для чтения только нужного количества строк. Точнее, прочитываем и забываем все строки, которые нам не нужны.
Другой вариант, если с одними и теми же данными много работаем - разместить их в БД и не "парить мозХ" никому, в т.ч. и себе
Спустя 42 минуты, 21 секунда (4.09.2010 - 00:32) Wolfer написал(а):
$ar = file('C:\file.txt' );
echo $ar[2];
Всем спасибо! никто толком ничего не знает. Зато столько столько споров не по теме...
Спустя 23 минуты, 32 секунды (4.09.2010 - 00:55) waldicom написал(а):
Цитата (Wolfer @ 3.09.2010 - 23:32) |
никто толком ничего не знает |
Это единственная нормальная мысль от Вас за все Ваши сообщения.
Спустя 8 часов, 2 минуты, 34 секунды (4.09.2010 - 08:58) sergeiss написал(а):
Цитата (waldicom @ 4.09.2010 - 01:55) |
Это единственная нормальная мысль от Вас за все Ваши сообщения. |
Как правильно говорит Василич - "Быть Нубом не страшно. Страшно быть им и не признавать этого." Тут мы в лице ТС как раз и наблюдаем этот самый случай.