Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прочитать последнюю строку файла 
:(
    Опции темы
Chort409
Дата 22.8.2008, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Приветствую All.
За дурость только сильно не пинайте. Есть такой простенький кусочек кода:
Код

$fh = fopen("some_file","r");
$ID =0;
while (! feof($fh))
{
    $line = fgets($fh, 4096);
    $conf_array = explode(' ',$line);
    $ID = $conf_array[1];
}
echo $ID;    

После завершения цикла переменная $ID обнуляеться, а мне надо получить последнее её значение... Как это сделать? подскажите пожалуйста ...
PM MAIL   Вверх
DioNiR
Дата 22.8.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



не правельный подход к получению последнего значения файла
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
Chort409
Дата 22.8.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Цитата(DioNiR @  22.8.2008,  22:15 Найти цитируемый пост)
не правельный подход к получению последнего значения файла


Судовольствием послушаю как это надо делать.
PM MAIL   Вверх
DioNiR
Дата 22.8.2008, 22:22 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Можно так:
Код
<?php
    $file = file('text.txt');
    rsort($file);
    echo $file[0];
?>


Это сообщение отредактировал(а) DioNiR - 22.8.2008, 22:23
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
Chort409
Дата 22.8.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Согласен, большое спасибо. Только надо не сортировать а просто взять обратный порядок, а то сортировка получаеться черте какая ...
PM MAIL   Вверх
Feldmarschall
Дата 22.8.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



DioNiR, это твой способ неправильный. 

Chort409, а ты чего соглашаешься? Тебе глупости пишут, а ты "спасибо". Своей головой иногда думать тоже надо. 
в принципе, на небольших файлах оба способа нормальные, но на больших будет работать только твой. зачем менять хороший код на плохой?
у тебя, небось, пустая строка в файле - вот её твой код последней и читает.
поставь другое условие, к примеру, пока длина прочитанной строки больше 2 симолов.



PM   Вверх
DioNiR
Дата 22.8.2008, 22:56 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Ой не ту функцию поставил.
Надо так:
Код
<?php
    $file = file('text.txt');
    $file = array_reverse($file);
    echo $file[0];
?>


Добавлено через 4 минуты и 52 секунды
Feldmarschall, в данном вопросе речи не было о большом файле, поэтому не надо меня обвинять в том что я не прав.
Еслиб изначально было бы сказано что файл большой, то тогда бы я согласился с тобой.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
Feldmarschall
Дата 22.8.2008, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



какая разница - какой файл?
зачем писать заведомо менее оптимальный код?
зачем читать весь файл в память, если нужна только одна строчка? зачем создавать массив, когда никаких массивов не нужно, а потом еще и сортировать его?
Зачем про правильный подход писать, что он неправильный? А?

PM   Вверх
Mal Hack
Дата 22.8.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Для очень больших файлов все эти алгоритмы можно класть фтопку.
Есть fseek, которым можно перекинуть указатель на n симовлом, в том числе и назад и прочитать что надо в конце.
Говоря о символах я говорю о байтах. Если мне не изменяет память, то с текстовыми файлами в ПХП это работает нормально с недавних времен.
PM ICQ   Вверх
HackMan
Дата 22.8.2008, 23:16 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


Профиль
Группа: Участник
Сообщений: 391
Регистрация: 18.6.2005
Где: .ua

Репутация: 8
Всего: 9



Если нужен последний элемент, то проще так:

Код

  $file = file('text.txt');
  echo end($file);


Это сообщение отредактировал(а) HackMan - 22.8.2008, 23:17


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Chort409
Дата 22.8.2008, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Народ спасибо, столько нового поузнавал ))) но после в случае с while всеравно почему-то не работает ...Файл проверил. 

Это сообщение отредактировал(а) Chort409 - 22.8.2008, 23:48
PM MAIL   Вверх
nornad
Дата 23.8.2008, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 1
Всего: 31



Получается, что у тебя в файле последняя строка либо пустая, либо не по формату.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Feldmarschall
Дата 23.8.2008, 09:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Chort409, а ты не файл проверяй. А работу своего скрипта. Сейчас ты на него смотришь, как на шляпу фокусника - "ой, я в него файл положил". "Ой, из него ID вышел". "Ой, не вышел!" А что там внутри происходит - загадка. 
Но ты же ведь не фокусник. Ты программист. Ты сам эту программу писал. Ты должен знать, что там внутри происходит.
кто тебе мешает выводить не единственный последний ID, а еще и вспомогательную информацию? Каждую входящую строку, результат разбивки эксплодом, $ID - то есть, все участвующие в скрипте переменные. 
И смотреть - что с ними не так.

Если ты научишься искать и исправлять ошибки в своем собственном скрипте - это будет в миллион раз ценнее, чем любой работающий скрипт. Это будет означать, что вводя эти строчечки в редактор, ты не зря переводишь время. Что у тебя что-то получится, если ты собираешься как-то связывать свою жизнь с программированием.
Потому что программирование - это не когда ты написал 500 строк и ты пошел пиво пить. программирование - это когда ты два дня ищешь одну ошибку в 5 строчках. Умение написать готовый код не стоит ничего. Умение найти и исправить ошибку - это то, без чего вообще не имеет смысла заниматься программированием. 

Поэтому не надо слушать гадания - что у тебя там в файле не так. Надо запустить свой скрипт и проверить. Зачем какой-то файл проверять, если у тебя в скрипте есть все средства прверки?
используй функцию var_dump(), выводя отладочную информацию.
PM   Вверх
Chort409
Дата 25.8.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 31.7.2008

Репутация: нет
Всего: нет



Feldmarschall, спасибо за наставление младшему товарищу, пойду совершенствоваться.
PM MAIL   Вверх
anrs
Дата 21.1.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



А если надо вытянуть последнии 10 строчек , то какой код нужен ? 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1312 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.