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

Форум PHP

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

 

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

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

тема: Как выводить текст по частям?
 
 автор: Владимир55   (20.11.2006 в 13:45)   письмо автору
 
 

Вот этим оператором

$pages=explode("----##----", chunk_split($text, $nznak, "----##----"));

через каждые $nznak в текст вставляется служебное слово ----##---- , а потом посредством оператора

$pages[$nomer];

при увеличении $nomer от нуля до некоей величины можно считывать текст частями по $nznak знаков. И все было бы хорошо, но при таком жестком делении текста на фрагменты фиксированного размера рвутся слова, что несколько некрасиво.

Поэтому хотелось бы чуть изменить алгоритм. Например, так:

1. Подсчитать количество слов в тексте, считая словом каждый знак или группу знаков, отделенных одним или несколькими пробелами.

Есть ли в РНР4 такая функция

$nslov = F($text) ; ??

Если непосредственно этой функции нет, то можно, как крайняя мера, удалить из текста все следующие подряд пробелы, оставив только один, и подсчитать число $nprob пробелов – а слов в этом случае будет на одно больше. Для этой цели в РНР4 есть подходящий оператор?

2. Выводить из текста информацию партией по $nslov в зависимости от той же переменной $nomer

$part = Ф($nslov, $text) ;

Если это невозможно или чрезвычайно трудно, то мне придется остановиться на использовании того оператора, что приведен в самом верху.

Или все же можно сделать вывод более оптимально?

   
 
 автор: Loki   (20.11.2006 в 14:06)   письмо автору
 
   для: Владимир55   (20.11.2006 в 13:45)
 

Можно выводить фиксированное количество слов. Маловероятно, чтобы на одной странице были только длинные слова, а на другой - только короткие.

<?
$words_at_page
=200//слов на странице
$page=intval($_GET['page']);
$text=file_get_contents("book.txt");
$words=explode(" "$text);
$start=$page*$words_at_page;
for (
$i=$start$i<=$start+$words_at_page$i++)
{
 
$new_text.=$words[$i]." ";
}
echo 
$new_text;
?>

   
 
 автор: Владимир55   (20.11.2006 в 14:55)   письмо автору
 
   для: Loki   (20.11.2006 в 14:06)
 

Выводить по одному слову и убрать из текста все многократные пробелы? Это круто! Ни за что не додумался бы! Красивый прием! Большое спасибо!

   
Rambler's Top100
вверх

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