Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.05.2004, 16:10
полосатый КОТ. вне форума Посмотреть профиль Отправить личное сообщение для полосатый КОТ. Посетить домашнюю страницу полосатый КОТ. Найти все сообщения от полосатый КОТ.
  № 1  
полосатый КОТ.
[+ 1.11 09.12.2005]

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 168
По умолчанию как вывести данные из конца файла?

есть книжка гостевая:
<?
$fn="baza_gost.dat";
$data=file($fn);
$x=count($data);
$z=$x-3;
for($i=$z; $i<$x; $i++)
{
$line=explode("|", $data[$i]);

echo($line[1]);
echo($line[2]);
echo($line[3]);
}
?>

выводит 3 последних сообщения, но сначала файла. т.е.
позавчера
вчера
сегодня

а надо бы (с конца файла):
сегодня,
вчера,
позавчера.

как? плиз
__________________
полосатый КОТ

Старый 28.05.2004, 16:25
Unknown вне форума Посмотреть профиль Отправить личное сообщение для Unknown Посетить домашнюю страницу Unknown Найти все сообщения от Unknown
  № 2  
Unknown
 
Аватар для Unknown

Регистрация: Apr 2001
Адрес: Moscow, где-то там...
Сообщений: 81
Отправить сообщение для Unknown с помощью ICQ
легче прочитать весь файл в массив, а потом просто три последние ячейки просмотреть. Если файл очень большой и читать весь в массив не хочется (хотя вроде особо много времени это едва ли займет, но все же...), то перематываешь на конец файла (fseek($fp, 0, SEEK_END); ), затем от туда посимвольно считываешь информацию, при получении символа "|", отделяешь предыдущие полученные символы в отдельную переменную (ячейку массива) и так до трех раз. Короче пишешь свою упрощенную функцию explode, которая действует задом-на-перед. Но все же если файл не большорй, незачем фигней страдать и легче считать его весь, а из массива выбрать последние элементы.
__________________
Flash is out there...
Флэш где-то рядом...

Старый 28.05.2004, 17:31
полосатый КОТ. вне форума Посмотреть профиль Отправить личное сообщение для полосатый КОТ. Посетить домашнюю страницу полосатый КОТ. Найти все сообщения от полосатый КОТ.
  № 3  
полосатый КОТ.
[+ 1.11 09.12.2005]

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 168
По умолчанию я уже понял что в моем случае лучше массив использовать+

но я настолько чайник, что не знаю как(((

только вот потихоньку начинаю вникать в PHP.

нашел даже такую функцию как: array_reverse
пытаюсь ее использовать-ничего не получается выводиться только три пустых поля:

$input=array("baza_gost.dat");
$fn = array_reverse($input);
$x=count($fn);
$z=$x-3;
for($i=0; $i<$x; $i++)
{
$line=explode("|", $data[$i]);

наверное я как-то или неправильно задаю массив или его читаю.
__________________
полосатый КОТ

Старый 28.05.2004, 18:11
полосатый КОТ. вне форума Посмотреть профиль Отправить личное сообщение для полосатый КОТ. Посетить домашнюю страницу полосатый КОТ. Найти все сообщения от полосатый КОТ.
  № 4  
полосатый КОТ.
[+ 1.11 09.12.2005]

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 168
По умолчанию ну я и тормоз))))

как читать с конца я понял)))
теперь думаю о том как последние три сделать, в старом варианте читает последние две и самую первую запись.


$fn =file("baza_gost.dat");
$data= array_reverse($fn );
$x=count($data);
for($i=0; $i<$x; $i++)
{
$line=explode("|", $data[$i]);
__________________
полосатый КОТ

Старый 28.05.2004, 18:17
полосатый КОТ. вне форума Посмотреть профиль Отправить личное сообщение для полосатый КОТ. Посетить домашнюю страницу полосатый КОТ. Найти все сообщения от полосатый КОТ.
  № 5  
полосатый КОТ.
[+ 1.11 09.12.2005]

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 168
По умолчанию вот и с последними все понятно)))

всего-то:
for($i=0; $i<3; $i++)

массив-то перевернут и можно просто считать первые 3

как все просто оказывается))

стоит только вдуматься и книжки почитать)))
__________________
полосатый КОТ

Старый 28.05.2004, 18:50
Constantine вне форума Посмотреть профиль Отправить личное сообщение для Constantine Посетить домашнюю страницу Constantine Найти все сообщения от Constantine
  № 6  
Constantine
 
Аватар для Constantine

Регистрация: Jun 2000
Адрес: $_SERVER['REMOTE_ADDR']
Сообщений: 854
Ну вот и молодца, а ведь на сколько приятней самому проблему разрулить!

Старый 28.05.2004, 19:38
Unknown вне форума Посмотреть профиль Отправить личное сообщение для Unknown Посетить домашнюю страницу Unknown Найти все сообщения от Unknown
  № 7  
Unknown
 
Аватар для Unknown

Регистрация: Apr 2001
Адрес: Moscow, где-то там...
Сообщений: 81
Отправить сообщение для Unknown с помощью ICQ
По умолчанию Re: вот и с последними все понятно)))

Цитата:
Оригинал написал(а) полосатый КОТ.
всего-то:
for($i=0; $i<3; $i++)

массив-то перевернут и можно просто считать первые 3

как все просто оказывается))

стоит только вдуматься и книжки почитать)))
ну об этом я вначале и говорил только одно но, если вдруг книга твоя разрастется... эдак до размеров этого форума, что едва ли осуществимо, но все же в теории, то читаться будет весь файл, а это очень долго, поэтому логичнее прочитать лишь нужные записи, но поскольку, я думаю файл никогда у тебя не превысит размеров больше 700 кбайт примерно, то все ок.
__________________
Flash is out there...
Флэш где-то рядом...

Старый 28.05.2004, 20:16
полосатый КОТ. вне форума Посмотреть профиль Отправить личное сообщение для полосатый КОТ. Посетить домашнюю страницу полосатый КОТ. Найти все сообщения от полосатый КОТ.
  № 8  
полосатый КОТ.
[+ 1.11 09.12.2005]

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 168
По умолчанию спасибо за участие)

__________________
полосатый КОТ

Старый 29.05.2004, 01:40
nagash вне форума Посмотреть профиль Отправить личное сообщение для nagash Посетить домашнюю страницу nagash Найти все сообщения от nagash
  № 9  
nagash
Ветеран форума
 
Аватар для nagash

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
ненадо так делать =)
просто совет на будущее...
всё выше предложеное жуткие варинты...

Создать новую тему   Часовой пояс GMT +4, время: 23:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:17.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.