| |
|
|
| | Подскажите, плиз, как сделать следующее. Есть индексный файл, в котором записаны строки, например:
1. Программирование на PHP.
2. Программирование на Perl.
3. Программирование на HTML.
Я пользуюсь для вывода инфорации из этого файла скриптом постраничной навигации, которая взята с этого сайта. В итоге в браузер выводится следующее:
Программирование на PHP.
Программирование на Perl.
Программирование на HTML.
А как сделать, чтобы все строчки выводились в обратном порядке, то есть в браузере выводилось:
Программирование на HTML.
Программирование на Perl.
Программирование на PHP. | |
| |
|
|
| |
|
|
| |
для: Footer
(16.03.2007 в 18:47)
| | | Для начала - привести ссылку на скрипт. На этом сайте туева хуча скриптов, и какой именно Вам понравился - несовсем ясно. | |
| |
|
|
| |
|
|
| |
для: Trianon
(16.03.2007 в 19:00)
| | |
<?php
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
$filename = "file.dat"; // Имя файла
// Число позиций на странице
$pnumber = 20;
// Открываем файл для чтения
$bufer = file_get_contents($filename);
// Находим все строки при помощи регулярного выражения
preg_match_all("#([\d]+) ([^\n]+)(\n|$)#U",
$bufer,
$out,
PREG_PATTERN_ORDER);
// Формируем промежуточный массив
for($i = 0; $i < count($out[1]); $i++)
{
$temp[] = trim($out[2][$i]);
}
// Проверяем передан ли номер текущей страницы
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
// Число страниц
$total = count($temp);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
$start = (($page - 1)*$pnumber + 1);
$end = $page*$pnumber + 1;
if($end > $total) $end = $total;
// Выводим содержимое страниц
for($i = $start; $i < $end; $i++)
{
echo $temp[$i]."";
}
// Постраничная навигация
for($i = 1; $i <= $number; $i++)
{
// Если это произвольная страница
if($i != $number)
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
// Если это последняя страница заменяем последнюю цифру
// максимальным числом позиций в массиве $temp
else
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> ";
}
}
}
//echo (${bufers});
echo "</table>\n";
?>
|
| |
| |
|
|
| |
|
|
| |
для: Footer
(16.03.2007 в 19:09)
| | | например, можно поменять порядок выборки строк в этом цикле
for($i = 0; $i < count($out[1]); $i++)
{
$temp[] = trim($out[2][$i]);
}
|
или даже просто воспользоваться функцией array_reverse().... | |
| |
|
|
| |
|
|
| |
для: Trianon
(16.03.2007 в 20:37)
| | | А как это сделать? Можно поподробнее? А то с массивами я не очень разбираюсь. | |
| |
|
|
| |
|
|
| |
для: Footer
(17.03.2007 в 08:07)
| | | Добавьте вызов функции array_reverse() после блока
<?php
for($i = 0; $i < count($out[1]); $i++)
{
$temp[] = trim($out[2][$i]);
}
$temp = array_reverse($temp);
?>
|
| |
| |
|
|