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

Форум PHP

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

 

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

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

тема: Разбивка текста на страницы
 
 автор: User   (31.05.2007 в 21:06)   письмо автору
 
 

Есть длинный текст. Нужно разбивать его на страницы примерно по 500 символов. Но так, чтобы текст резался не по символам, а по границам слов. Подскажите, как это лучше реализовать

   
 
 автор: DEM   (31.05.2007 в 21:27)   письмо автору
 
   для: User   (31.05.2007 в 21:06)
 

Как имено это сделать, надо думать... Но я бы делал через РЕКУРСИЮ. Например так:
Смотрим чем заканчиваются 500 символов, если точкой (запятой, пробелом и т.д.), то поставить разделитель (то есть, создаём вторую страницу), если же нет, то увеличивает на 1 символ (то есть уже 501) и опять смотрим, если следующий символ опять не точка (пробел, запятая и т.д.), то опять увеличиваем на единицу (502). Ну и т.д.

   
 
 автор: Trianon   (31.05.2007 в 21:55)   письмо автору
 
   для: DEM   (31.05.2007 в 21:27)
 

а рекурсия зачем?

   
 
 автор: User   (31.05.2007 в 22:12)   письмо автору
 
   для: DEM   (31.05.2007 в 21:27)
 

Дем, так как вы предлагаете длинный код получится... Я думал сделать примерно так:


<?php
$page
=intval($_GET['page']);//номер страницы
$kolvo=500;
$start=$page*$kolvo;
$len=$kolvo+20;
$text=substr($content,$start,$len);
ereg("([^ ] ){1,500}"$text$array);
$text=$array[1];
?>

Возможно ли сделать проще и чтоб быстрее работало?

   
 
 автор: Artem S.   (31.05.2007 в 22:25)   письмо автору
 
   для: User   (31.05.2007 в 21:06)
 

Вариант 1

<?php
$page1 
wordwrap($longstr500"~");
$page1 substr($page10strpos($page1"~"));
echo 
$page1;
?>

Вариант 2

<?php
$page1 
preg_replace("/^(.{500,})\W.*/U""\\1"$longstr);
?>

   
Rambler's Top100
вверх

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