HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 22.03.2008, 00:58
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


Отправить сообщение для Dimi4 с помощью ICQ
По умолчанию

Постраничная навигация на файлах

Автор: IT-студия SoftTime (softtime.ru)

Скрипт предназначен отображения определённого числа позиций из файла и генерации ссылок на следующие позиции. Пусть имеется файл text.txt следующего формата.
Файл данных text.txt
Цитата:
1 Программирование

2 Программирование на PHP

3 Программирование на JavaScript

4 Программирование на ASP.NET

5 Программирование на Java

6 Программирование на Perl

7 Программирование на C++

8 Программирование на Pascal

9 Программирование на Fortran

10 Программирование на Assembler
Тогда скрипт, выводящий по три позиции на странице может выглядеть так, как это представлено ниже

Постраничная навигация
Код:
<?php

  // Имя файла

  $filename = "text.txt";

  // Число позиций на странице

  $pnumber = 3;

  // Открываем файл для чтения

  $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]."<br>";

  }



  // Постраничная навигация

  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;";

      }

    }

  }

?>
_http://php.su/articles/?cat=examples&page=057
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ