- 13.09.13=Текст сообщения 1
13.09.13=Текст сообщения 2
13.09.13=Текст сообщения 3
13.09.13=Текст сообщения 4
13.09.13=Текст сообщения 5
13.09.13=Текст сообщения 6
и так 25 строк....
a. Имеется вот такой вот мутный скрипт по выводу последних нужных 15 строк из этого файла:
$arr = file ($history);
$count = count($arr); // Посчитали колличество строк, 25
$needcount = $count-15; // Определили нужное кол-во для отображения, осталось 10
$ostatok = $needcount; // остаток 10
$needcount = count ($arr); // Зачем ???
for($i = $ostatok; $i < $needcount; $i++) // wtf ??? )))
echo ("<table id=messages><td>".$arr[$i]."</td></table>");
1.) Всё работает как надо, но не могу до конца разобраться с принципом работы сего скрипта. Как его привести к правильному виду? Ведь то что написано, полный бред, уверен что можно сделать намного грамотней для того, что требуется в пункте a.
2.) echo выводит все в блок div, внутри которого таблица id=messages со скроллбаром.
Как сделать ссылочку/кнопочку гденибудь рядом, на которую нажимаешь - подгружаются сюда же в таблицу еще $count-15; т.е. нажали - загрузилось 15 строк, еще раз нажали - сюда же еще 15 строк и тд. (чтобы потом можно было убрать эту кнопку и сделать "автодобавление" скроллбаром, крутишь-крутишь, строки добавляются.
Вот такая вот задачка :) Помогите пожалуйста, для Вас это очень просто, а я заодно разберусь и уже отправился читать цикл for
p.s. т.к. нам не известно (ну сейчас известно, но если файл имеет хз сколько строк) то лучше юзать цикл while.
3.) И ещё такой вопросик:
Как при помощи explode заменить знак "=" только после 13.09.13? или еще в какомнибудь месте, а то так, как сделал я - заменяется везде. А нужно только в определенном месте.
Сделал так, но не работает:
for($i = $ostatok; $i < $needcount; $i++)
{
$line = explode("=", $arr[0], 2);
echo ("<table id=messages><td>" . $arr[$i] . "</td></table>");
}
Придется подругому делать? Или можно всетаки через експлоде в одном цикле?
Получился такой код:
for($i = $ostatok; $i < $needcount; $i++)
{
echo ("<table id=messages><td>" . $arr[$i] . "</td></table>");
}
$data = $arr;
for($i=0;$i<count($data);$i++) {
$line = explode("=",$data[$i], 2);
echo $line[0] . " " . $line[1] . "<br>";
}
Первый цикл выводит как надо последние 15 строк, но без эксплоде , а второй цикл выводит тупо весь массив но с эксплоде.. Как совместить 2 цикла в один?
Тупо эксплодить в 1м цикле не получается
Нужно вывести последние 15 строк в цикле, и там же как то обрезать первые "=" 2 раза встречающиеся.