[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите сделать постраничный вывод
dmitriy-s
Перечитал кучу форумов. Есть такая тема и здесь. Но, либо непонятно, либо не подходит под мою задачу.
Прошу консультации:
Есть файл content.php , который вставляется в index.php функцией include.
Файл content.php постоянно пополняется текстом форматированным html вручную (отчеты), нужно организовать его постраничный вывод с элементарной навигацией (1,2,3…), без использования БД.





Спустя 8 минут, 1 секунда (7.04.2011 - 14:44) Игорь_Vasinsky написал(а):
наверно так:

прочитать файл, разделить файл на массив, каждый элемент которого должен содержать 3000 символов (причём подсчитывать до след точки, до конца предложения)

выводить по элементу массива на строка, навигазию формировать по кол-ву массивов (определять страницу по GET)

Спустя 16 минут, 22 секунды (7.04.2011 - 15:01) dima4321 написал(а):
вижу себе это так.

Содержимое файла является массивом.

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

тогда подсчитываем кол-во элементов массива функцией count

и делаем банальный вывод спомощью арифметики и цикла

типа такого

for($i=0;$i<count($array);$i++)

{
echo "a href='page.php?$array[$i]'>page $i</a>";
}


ипсользуешь везде переменную get

и в зависимости от того какая get пришла делаешь вывод массива с определнного до нужного элемента.

т.е.

$kol.=(count($array)-1)/5)+1;// кол-во страниц

$start = $_GET['page'] * 5 - 5;

и т.д


Спустя 41 минута, 56 секунд (7.04.2011 - 15:43) dmitriy-s написал(а):
Спасибо за ответы, но общий принцип понятен - вся сложность в деталях.
1. Если делить по символам - оборвет черт знает где.
2. Если делить по строкам (абзацам) - они все разного размера -страницы будут "где пусто, где густо".
3. Для корректного деления файла на массив, наверное нужен определенный формат данных? Сейчас они в таком виде:
...
<p><b>05.03</b>.2011 г. Зимнее первенство по футболу г.Нижний Новгород<br>
«Ник-2» (Нижний Новгород) – «Мотор» (Заволжье) 1:0</p>
<p><b>05.03</b>.2011 г. Областные соревнования по лёгкой атлетике на Кубок Федерации г.Нижний Новгород<br>
1 место – Перфилова Лена (в беге на 600 метров)<br>
2 место – Садовая Лера (в беге на 60 метров)<br></p>
...
Не подскажет ли кто готовый скрипт – подправить код я смогу, написать самостоятельно –нет.

Спустя 20 минут, 22 секунды (7.04.2011 - 16:03) Mirexzpalich написал(а):

<p><b>05.03</b>.2011 г. Зимнее первенство по футболу г.Нижний Новгород<br>
«Ник-2» (Нижний Новгород) – «Мотор» (Заволжье) 1:0</p>
<p><b>
05.03</b>.2011 г. Областные соревнования по лёгкой атлетике на Кубок Федерации г.Нижний Новгород<br>
1 место – Перфилова Лена (в беге на 600 метров)<br>
2 место – Садовая Лера (в беге на 60 метров)<br></p>


$pages = file_get_content('content.php');
// выдераем по частям
$page = array();
preg_match_all( '<p>(.*)</p>|U', $pages, $page);
$page = $page[1];
// полуил массив новостей
//ссылки-то смогешь сделать сам?

.......
//Вывод к-й страницы
// на ней p новостей


for($i=$k*$p-1;$i<=$k*$p+$p;$i++)
echo $page[$i];


Спустя 1 час, 17 минут, 59 секунд (7.04.2011 - 17:21) dmitriy-s написал(а):
Уважаемый Mirexzpalich!
Прости заср..(вычеркнуто) ламера
preg_match_all( '<p>(.*)</p>|U', $pages, $page) - формирует массив $page, но каково значение строки $page = $page[1];- массиву присваивается значение первого элемента?

Спустя 1 час, 1 минута, 13 секунд (7.04.2011 - 18:22) Mirexzpalich написал(а):
да... Только не первого а второго элемента.
Функция формирует массив из 2-х элементов, которые тоже массивы. Но: page[0] - будет включать в себя <p>...</p> а page [1] - нет. тобишь без <p></p>....
Кста, если файлик ОООЧЕНЬ большой, то советую читать его построчно....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.