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

Форум MySQL

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

 

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

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

тема: Разбить большой текст по страницам
 
 автор: class   (05.03.2010 в 07:32)   письмо автору
 
 

Здравствуйте.
Подскажите ка большой текст разбить по страницам.

Текст берется из БД.


<?
$sql_text 
mysql_fetch_assoc(mysql_query("SELECT text FROM cat WHERE id='$id_cat' LIMIT 1"));
$text nl2br(htmlspecialchars(trim($sql_text['text'])));
echo 
$text;
?>


Выводит большой объем текста, вот его необходимо разбить по страницам.

  Ответить  
 
 автор: oliss   (05.03.2010 в 08:37)   письмо автору
 
   для: class   (05.03.2010 в 07:32)
 

Может это надо http://www.softtime.ru/info/articlephp.php?id_article=33

  Ответить  
 
 автор: class   (05.03.2010 в 08:59)   письмо автору
 
   для: oliss   (05.03.2010 в 08:37)
 

Перечитайте моё сообщение ещё раз и посмотрите на код.

  Ответить  
 
 автор: class   (05.03.2010 в 08:59)   письмо автору
 
   для: class   (05.03.2010 в 07:32)
 

Сам разобрался =)
Тему можно закрыть.

  Ответить  
 
 автор: Trianon   (05.03.2010 в 10:25)   письмо автору
 
   для: class   (05.03.2010 в 08:59)
 

тему можно будет закрыть, когда Вы покажете решение.

  Ответить  
 
 автор: class   (05.03.2010 в 10:52)   письмо автору
 
   для: Trianon   (05.03.2010 в 10:25)
 


<?
$sql_text 
mysql_fetch_assoc(mysql_query("SELECT text FROM cat WHERE id='$id_cat' LIMIT 1")); 
$text htmlspecialchars(trim($sql_text['text']));

$page abs(intval(@$_GET['p']));

$content wordwrap($text1000"%%"); 
$text preg_split("|%%|"$content);

$c count($text);
if(
$page || $page >= $c){
$page 0;
}

echo 
nl2br($text[$page]);

if(
$c 1){
echo 
'<b>Страницы:</b> ';
for(
$i=0;$i<$c;$i++){
if(
$page != $i){
echo 
'<a href="?p='.$i.'">'.($i+1).'</a> '
}else{
echo 
'<b>'.($i+1).'</b> ';
}
}
?>

  Ответить  
 
 автор: Trianon   (05.03.2010 в 12:39)   письмо автору
 
   для: class   (05.03.2010 в 10:52)
 

это плохое решение.

Корректное решение выполнит разбиение один раз при загрузке контента, и в дальнейшем будет полагаться на его результаты - разделение на страницы будет посчитано заранее, а составленный индекс сохранен в таблице. Это
а) не потребует загружать весь текст в оперативную память - только нужный кусок.
б) не потребует гонять preg при каждом обращении к постраничке и тексту

Нечто подобное, помнится, проделывала здесь Лена энное количество времени назад.

  Ответить  
Rambler's Top100
вверх

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