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

Форум PHP

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

 

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

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

тема: разбивка текста по нескольким признакам
 
 автор: loneliness   (17.01.2007 в 06:09)   письмо автору
 
 

Третий день бьюсь- все никак... И у Вас на форуме (к моему удивлению и сожалению) покамест не смог никто помочь.. Вероятно, плохо формулирую, что нужно...
Есть текст примерно такого формата:

...............
04:16:52 ДОПУСТИМЫ_ТОЛЬКО+ Москва<ems:br>Че опять с командой?<ems:br>
04:16:18 VYPIVOHA+ Тверь<ems:br>Всем привес а Mila тут?<ems:br>
02:25:31 WickedTroll+ Тамбов<ems:br>Доброй ночи неспящим :)<ems:br>
01:35:18 Сэд+ Ростов<ems:br>Zzz..<ems:br>
00:52:39 GZHELKA+ Москва<ems:br>WIZZARD PRIVET,DAVAJ POZNAKOMIMSYA?<ems:br>
00:47:56 GZHELKA+ Москва<ems:br>PRIVET,NAPIWITE MNE KTO NIBUD',INA4E YA USNU I NO4 BUDET NE INTERESNA!<ems:br>
00:40:50 Kannon+ СПБ<ems:br>Извини.Спок ночи!Спасибо. *"Зачем нужна дорога, если она не ведет к Храму?"*<ems:br>
00:39:08 GZHELKA+ Москва<ems:br>Натусик гжелка<ems:br>
00:35:12 WizzARD+ СПБ<ems:br>Мила???<ems:br>
00:34:44 MlLA Сургут<ems:br>News zakroyut.Use,boshe ne otvechu<ems:br>
00:30:54 GZHELKA+ Москва<ems:br>Инсперт Натусик ребята,возмите меня к себе!!<ems:br>
00:24:07 Flash777 <ems:br>
00:16:12 MILA* Сургут<ems:br>Казнят через повешение...Спать<ems:br>
00:13:14 Kan+ СПБ<ems:br>Так как насчет наказания Модера?М?Никто не скажет?<ems:br>
.....................


Нужно отформатировать текст так, чтобы было по несколько постов в каждой строчке, но строка не превышала длинной 480 символов и была к этой длине как можно ближе. И чтобы пост, находящийся в конце строки, не рвался переводом строки в своем теле.
Подскажите, можно ли это как-то реализовать?Буду очень благодарен за примеры.


00:13:14 Kan+ СПБ<ems:br>Так как насчет наказания Модера?М?Никто не скажет?<ems:br>00:16:12 MILA* Сургут<ems:br>Казнят через повешение...Спать<ems:br>

   
 
 автор: kasmanaft   (17.01.2007 в 06:11)   письмо автору
 
   для: loneliness   (17.01.2007 в 06:09)
 

А как с временем и тегами поступать?
Покажите, плз, что именно нужно получить

   
 
 автор: Loneliness   (17.01.2007 в 06:15)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 06:11)
 

Теги <ems:br> я сам добавлял, они нужны. Время также нужно. Необходимо только сгруппировать посты в строки длинной близкой к 480, при этом не разрывая самих постов в их теле.

00:13:14 Kan+ СПБ<ems:br>Так как насчет наказания Модера?М?Никто не скажет?<ems:br>00:16:12 MILA* Сургут<ems:br>Казнят через повешение...Спать<ems:br>.... ~480 символов
00:13:14 Kan+ СПБ<ems:br>Так как насчет наказания Модера?М?Никто не скажет?<ems:br>00:16:12 MILA* Сургут<ems:br>Казнят через повешение...Спать<ems:br>....  ~480 символов
.....

Такого вида текст нужен на выходе.

   
 
 автор: kasmanaft   (17.01.2007 в 06:19)   письмо автору
 
   для: Loneliness   (17.01.2007 в 06:15)
 

Сейчас что-нибудь придумаем :)
Любой пост заканчивается на <ems:br> ?

   
 
 автор: Loneliness   (17.01.2007 в 06:20)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 06:19)
 

Да, каждый пост заканчивается <ems:br> и начинается со времени его создания.

   
 
 автор: kasmanaft   (17.01.2007 в 06:29)   письмо автору
 
   для: Loneliness   (17.01.2007 в 06:20)
 

Тааак .. попробуйте вот это:

<?
$text 
"текст в виде строки, где посты отделяются друг от друга переносом строки";
preg_match_all("/([\d:]{8}.{0,472}(\r\n|$))/is"$text$regs); 
foreach(
$regs[1] as $val)
    echo 
str_replace("\r\n"""$val)."<br><br>";
?>

>> Да, каждый пост заканчивается <ems:br>
Не заметил, что он может и посреди поста встретиться ...

   
 
 автор: Loneliness   (17.01.2007 в 06:37)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 06:29)
 

Попробовал. Кажется, это как раз то, что доктор прописал! :-)
От всей души благодарен, реально очень помогли!

   
 
 автор: kasmanaft   (17.01.2007 в 06:39)   письмо автору
 
   для: Loneliness   (17.01.2007 в 06:37)
 

Пожалуста :)
Немного изменил рег. выражение ... последний пост не учитывался.

   
 
 автор: Loneliness   (17.01.2007 в 06:42)   письмо автору
 
   для: kasmanaft   (17.01.2007 в 06:29)
 

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

   
 
 автор: kasmanaft   (17.01.2007 в 06:47)   письмо автору
 
   для: Loneliness   (17.01.2007 в 06:42)
 

Выражение берет все такие подстроки:
начинается на 8 символов - цифр или двоеточий ... в любом порядке. Дальше идут любые символы от 0 до 472, причем так чтобы после последнего из них стоял перенос или конец строки.

   
Rambler's Top100
вверх

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