Облазив все просторы интернета, я не нашел НИ ОДНОГО удовлетворяющего меня кода постраничного вывода, который был мне нужен для моей библиотеки lib.guest-marketing.com, в связи с чем мне пришлось вспомнить молодость и написать его самостоятельно.
Тем что получилось я хочу поделиться с Вами, дабы Вы не испытывали трудностей и не чувствовали тот яростный гнев, который обуревал меня в процессе гугления.
<?php
$description = $_POST[‘textbuffer’];
// Определяем максимальное число параграфов на странице
define(‘PARA_ON_PAGE’, 20);
// читаем файл
$content = $description;
// забираем только текст внутри тега <body>
if (preg_match(‘~<body[^>]*>(.*)</body>~s’, $content, $matches))
$content = $matches[1];
$pages = array();
// получаем параграфы
$paragraphs = explode( ‘</p>’, $content);
if (count($paragraphs) > PARA_ON_PAGE) {
$i = $p = 0;
while( $i < count($paragraphs)) {
$page_paragraphs = array_slice( $paragraphs, $i, PARA_ON_PAGE);
$pages[$p] = implode(‘</p>’, $page_paragraphs) . ‘</p>’; // собираем страницу
$p++;
$i += PARA_ON_PAGE;
}
} else { // всего одна страница
$pages[0] = $content;
}
// номер текущей страницы
$page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1;
// выводим текущую страницу
echo $pages[ $page — 1 ];
if (count($pages) > 1) { // простенький навигатор
echo ‘<br/></br>’;
for ($i = 1; $i <= count($pages); $i++)
if ($i == $page) {
echo ‘<strong>’.$i. ‘</strong> ’; } else {
echo ‘<a href=»fb2parcerstr.php?fnazvanie=’.$fnazvanie.’&page=’.$i.'»> [‘.$i.’] </a> ’;
}
}
?>
Собственно в чем соль.. как Вы видите, достаточно строковой переменной с данными, которую не проблема создать. Это могут быть данные как из таблицы mysql, как из файла, так и данные полученные любым другим способом.
Удачи!