Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с индексным файлом.
 
 автор: Footer   (16.03.2007 в 18:47)   письмо автору
 
 

Подскажите, плиз, как сделать следующее. Есть индексный файл, в котором записаны строки, например:
1. Программирование на PHP.
2. Программирование на Perl.
3. Программирование на HTML.

Я пользуюсь для вывода инфорации из этого файла скриптом постраничной навигации, которая взята с этого сайта. В итоге в браузер выводится следующее:
Программирование на PHP.
Программирование на Perl.
Программирование на HTML.

А как сделать, чтобы все строчки выводились в обратном порядке, то есть в браузере выводилось:
Программирование на HTML.
Программирование на Perl.
Программирование на PHP.

   
 
 автор: Trianon   (16.03.2007 в 19:00)   письмо автору
 
   для: Footer   (16.03.2007 в 18:47)
 

Для начала - привести ссылку на скрипт. На этом сайте туева хуча скриптов, и какой именно Вам понравился - несовсем ясно.

   
 
 автор: Footer   (16.03.2007 в 19:09)   письмо автору
 
   для: 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."]&nbsp;";
}
else
{
echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
((
$i 1)*$pnumber 1)."-".$i*$pnumber."]</a>&nbsp;";
}
}
// Если это последняя страница заменяем последнюю цифру 
// максимальным числом позиций в массиве $temp
else
{
if(
$page == $i)
{
echo 
"[".(($i 1)*$pnumber 1)."-".($total 1)."]&nbsp;";
}
else
{
echo 
"<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
((
$i 1)*$pnumber 1)."-".($total 1)."]</a>&nbsp;";
}
}
}
//echo (${bufers});
echo "</table>\n";


?>

   
 
 автор: Trianon   (16.03.2007 в 20:37)   письмо автору
 
   для: Footer   (16.03.2007 в 19:09)
 

например, можно поменять порядок выборки строк в этом цикле

for($i = 0; $i < count($out[1]); $i++) 

$temp[] = trim($out[2][$i]); 


или даже просто воспользоваться функцией array_reverse()....

   
 
 автор: Footer   (17.03.2007 в 08:07)   письмо автору
 
   для: Trianon   (16.03.2007 в 20:37)
 

А как это сделать? Можно поподробнее? А то с массивами я не очень разбираюсь.

   
 
 автор: cheops   (17.03.2007 в 13:33)   письмо автору
 
   для: 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);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования