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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Альтернатива wordwrap();

Сообщения:  [1-7] 

 
 автор: Киналь   (15.01.2007 в 14:19)   письмо автору
 
   для: Loneliness   (14.01.2007 в 21:49)
 

Вот похожая функция; вырезает первые $end_point символов или больше - пока не встретит пробел.


<?php
function first_words($text$end_point)
{
if (
$end_point >= strlen($text)) return $text;
 while (
true)
 {
  
$tmp_text=substr($text0$end_point+1); // вместо нуля поставьте номер начального символа
  
if ($tmp_text[$end_point] != ' '// вместо пробела поставьте признак начала сообщения
  
$end_point++; // поменяйте на декремент
  
else
  break;
  if (
$end_point == strlen($text)) return $text;
 }
 return 
$tmp_text.' ...';
}
?>


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

   
 
 автор: loneliness   (15.01.2007 в 14:10)   письмо автору
 
   для: Loneliness   (14.01.2007 в 21:49)
 

Никто не может ничем помочь? ;-(

   
 
 автор: Loneliness   (14.01.2007 в 21:49)   письмо автору
 
   для: Киналь   (14.01.2007 в 21:02)
 

Идея по сути верная, только в том-то и проблема, что в силу своей малой осведомленности в php, очевидно, я не могу сообразить, как ее реализовать в конкретном коде. Буду очень благодарен за практические примеры такой реализации.

   
 
 автор: Киналь   (14.01.2007 в 21:02)   письмо автору
 
   для: Loneliness   (14.01.2007 в 19:37)
 

Идея в следующем: отсчитываем 450 символов и начинаем идти обратно. как только встречаем начало сообщения, вставляем перевод строки. Цикл повторяем, начиная с этого перевода.

   
 
 автор: Loneliness   (14.01.2007 в 20:27)   письмо автору
 
   для: Alph[p]a   (14.01.2007 в 19:56)
 

Нет, перевод строки нужен не после каждого сообщения, а перед каждым сообщением, ближайшим к каждому 450-му символу строки.
Схематично так:

14:49:35 Cообщение-№1  14:49:45 сообщение-№2.............  \r\n 15:25:26 Сообщение-№ИКС содержащее 450-й по порядку символ строки 15:30:23 Сообщение-№X+1  15:32:12 Сообщение№X+2....... \r\n 16:30:00 Сообщение-№Y содержащее в себе 900-й по порядку символ строки...

То есть, нужно перед каждым сообщением, содержащим в себе символ с порядковым номером кратным 450 сделать перевод строки \r\n
wordwrap(); делит, но точно на заданное количество символов, тем самым часто разделяя переводом строки само сообщение пользователя, а мне это неприемлемо.

   
 
 автор: Alph[p]a   (14.01.2007 в 19:56)   письмо автору
 
   для: Loneliness   (14.01.2007 в 19:37)
 

Нужно привести сообщения к токому виду???

14:49:30 Бабай(гость) Красноярск Бабай пришлите картинки
14:42:23 ОТКРОВЕНИЕ Ушел из чата:
14:57:23 Tibald(гость) Всем привет

или как?

   
 
 автор: Loneliness   (14.01.2007 в 19:37)   письмо автору
 
 

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

..... 14:49:30 Бабай(гость) Красноярск Бабай пришлите картинки<ems:br>14:42:23 ОТКРОВЕНИЕ Ушел из чата:<ems:br>14:57:23 Tibald(гость) Всем привет ......

Нужно в этой строке, через каждые 450 символов(не больше) вставить перевод строки \r\n таким образом, чтобы этот перевод оказался непосредственно перед последним сообщением юзера,
например:

..... Бабай(гость) Красноярск Бабай пришлите картинки<ems:br>14:42:23 ОТКРОВЕНИЕ Ушел из чата:<ems:br> \r\n 14:57:23 Tibald(гость) Всем привет  .....

То есть, чтобы перевод строки при этом не был внутри сообщения.
Подскажите, пожалуйста, каким образом это возможно реализовать?

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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