Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 14
Благодарности: 4

Профиль | Отправить PM | Цитировать


Использовать
Код: Выделить весь код
$rettext = substr($text, $page*$max_length, $max_length);
- не эффективно, т.к. программа будет разрывать на страницы где попало, посреди слов и т.д., может одну букву остваить на одной странице, а остальную часть слова перенести на другую или наоборт, перенесет последнюю букву на следующу страницу. Словом, будет рвать слова и предложения где вздумается. Можно попробовать такой вариант:
Код: Выделить весь код
$text = 'Первый пример текста. Второй пример текста. Третий пример текста. Четвертый пример текста.';
$max_length = 30;
$page = (isset($_GET['page']) ? $_GET['page'] : 2);
// Разбиваем $text на массив $arr[], находя в тексте пробелы между словами
$text.= ' ';
while (!empty($text)):
  if (strlen($text)>$max_length) $n = $max_length; else $n = strlen($text);
  for ($i = $n-1; $i>0; $i--) if ($text[$i]==' ') break;
  $arr[] = trim(substr($text,0,$i+1)); $text = substr($text,$i+1);
endwhile;
$k = count($arr);
// Выводим на экран текущую страницу
echo 'Страница '.$page.' из '.$k.'<br><br>';
echo $arr[$page-1];
// Теперь рисуем простенький навигатор страниц
$nav = '<a href="?page='.($page>1 ? $page-1 : 1).'">Предыдущая</a> ';
$nav.= '<a href="?page='.($page<$k ? $page+1 : $k).'">Следующая</a>';
echo '<br><br>'.$nav;
// А это для отладки, чтобы было видно, что происходит
echo '<pre>'; print_r($arr);
Здесь программа будет разрывать по пробелам между словами. Хотя и это конечно тоже не предел совершенства.

-------
Лучшие сайты интернета


Отправлено: 18:12, 22-05-2008 | #7