| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > прочитать последнюю строку файла |
| Автор: Chort409 22.8.2008, 22:05 | ||
| Приветствую All. За дурость только сильно не пинайте. Есть такой простенький кусочек кода:
После завершения цикла переменная $ID обнуляеться, а мне надо получить последнее её значение... Как это сделать? подскажите пожалуйста ... |
| Автор: DioNiR 22.8.2008, 22:15 |
| не правельный подход к получению последнего значения файла |
| Автор: Chort409 22.8.2008, 22:19 |
Судовольствием послушаю как это надо делать. |
| Автор: DioNiR 22.8.2008, 22:22 | ||
Можно так:
|
| Автор: Chort409 22.8.2008, 22:42 |
| Согласен, большое спасибо. Только надо не сортировать а просто взять обратный порядок, а то сортировка получаеться черте какая ... |
| Автор: Feldmarschall 22.8.2008, 22:55 |
| DioNiR, это твой способ неправильный. Chort409, а ты чего соглашаешься? Тебе глупости пишут, а ты "спасибо". Своей головой иногда думать тоже надо. в принципе, на небольших файлах оба способа нормальные, но на больших будет работать только твой. зачем менять хороший код на плохой? у тебя, небось, пустая строка в файле - вот её твой код последней и читает. поставь другое условие, к примеру, пока длина прочитанной строки больше 2 симолов. |
| Автор: DioNiR 22.8.2008, 22:56 | ||
| Ой не ту функцию поставил. Надо так:
Добавлено через 4 минуты и 52 секунды Feldmarschall, в данном вопросе речи не было о большом файле, поэтому не надо меня обвинять в том что я не прав. Еслиб изначально было бы сказано что файл большой, то тогда бы я согласился с тобой. |
| Автор: Feldmarschall 22.8.2008, 23:10 |
| какая разница - какой файл? зачем писать заведомо менее оптимальный код? зачем читать весь файл в память, если нужна только одна строчка? зачем создавать массив, когда никаких массивов не нужно, а потом еще и сортировать его? Зачем про правильный подход писать, что он неправильный? А? |
| Автор: Mal Hack 22.8.2008, 23:16 |
| Для очень больших файлов все эти алгоритмы можно класть фтопку. Есть fseek, которым можно перекинуть указатель на n симовлом, в том числе и назад и прочитать что надо в конце. Говоря о символах я говорю о байтах. Если мне не изменяет память, то с текстовыми файлами в ПХП это работает нормально с недавних времен. |
| Автор: HackMan 22.8.2008, 23:16 | ||
Если нужен последний элемент, то проще так:
|
| Автор: Chort409 22.8.2008, 23:39 |
| Народ спасибо, столько нового поузнавал ))) но после в случае с while всеравно почему-то не работает ...Файл проверил. |
| Автор: nornad 23.8.2008, 01:31 |
| Получается, что у тебя в файле последняя строка либо пустая, либо не по формату. |
| Автор: Feldmarschall 23.8.2008, 09:04 |
| Chort409, а ты не файл проверяй. А работу своего скрипта. Сейчас ты на него смотришь, как на шляпу фокусника - "ой, я в него файл положил". "Ой, из него ID вышел". "Ой, не вышел!" А что там внутри происходит - загадка. Но ты же ведь не фокусник. Ты программист. Ты сам эту программу писал. Ты должен знать, что там внутри происходит. кто тебе мешает выводить не единственный последний ID, а еще и вспомогательную информацию? Каждую входящую строку, результат разбивки эксплодом, $ID - то есть, все участвующие в скрипте переменные. И смотреть - что с ними не так. Если ты научишься искать и исправлять ошибки в своем собственном скрипте - это будет в миллион раз ценнее, чем любой работающий скрипт. Это будет означать, что вводя эти строчечки в редактор, ты не зря переводишь время. Что у тебя что-то получится, если ты собираешься как-то связывать свою жизнь с программированием. Потому что программирование - это не когда ты написал 500 строк и ты пошел пиво пить. программирование - это когда ты два дня ищешь одну ошибку в 5 строчках. Умение написать готовый код не стоит ничего. Умение найти и исправить ошибку - это то, без чего вообще не имеет смысла заниматься программированием. Поэтому не надо слушать гадания - что у тебя там в файле не так. Надо запустить свой скрипт и проверить. Зачем какой-то файл проверять, если у тебя в скрипте есть все средства прверки? используй функцию var_dump(), выводя отладочную информацию. |
| Автор: Chort409 25.8.2008, 17:33 |
| Feldmarschall, спасибо за наставление младшему товарищу, пойду совершенствоваться. |
| Автор: anrs 21.1.2009, 13:22 |
| А если надо вытянуть последнии 10 строчек , то какой код нужен ? |
| Автор: s0lman 21.1.2009, 13:40 |
| anrs, подсказать алгоритм? Узнаем количество строк в файле, отнимаем 10 и выводим по порядку от полученного номера строки до конца файла (номер строки минус 1, если быть точным) |