Автор Тема: Разбиение длинных слов в сообщении  (Прочитано 5592 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Я правльно понимаю, что если если мне надо разбивать в сообщении только те слова, длина которых больше заданной, то wordwrap тут не моможет?
С третьим ключем 1 он везде вставляет символ разбиения, а без не трогает длинные слова.

Можно что-то придумать попроще, чем


$words 
explode(\' \',$comment);
for ($ii=0;$ii<count($words);$ii++)
	
{
if (strlen($words[$ii])>$max_lenght)
	
{$words[$ii] = wordwrap ($words[$ii], $max_lenght, \' \', 1);}
}

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Разбиение длинных слов в сообщении
« Ответ #1 : 21 Апреля 2002, 00:32:28 »
function break_long_words($source_text,$lng)
{
   $regExp=\'/(\\S{\'.$lng.\',})/ei\';
   $res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
   return $res_text;
}
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Разбиение длинных слов в сообщении
« Ответ #2 : 21 Апреля 2002, 00:37:33 »
ну это же реги.... это же медленне! Или нет?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Разбиение длинных слов в сообщении
« Ответ #3 : 21 Апреля 2002, 01:16:44 »
Угу.
Раз в 5 - 20.

Кстати в worwrap есть баг.
Вот пример (взял с кода чата с php.spb.ru):


PS
Вроде для тех же целей можно chunk_split() использовать, но я ее не использовал - пока не знаю.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Разбиение длинных слов в сообщении
« Ответ #4 : 21 Апреля 2002, 01:20:04 »
Ага! Точно! Я на этот баг тоже наталкивался. Вроде в 4.2 исправили, но я не ставил, не знаю

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Разбиение длинных слов в сообщении
« Ответ #5 : 21 Апреля 2002, 01:51:28 »

<?
function 
word_wrap($s,$n,$br) {
   
$len=strlen($s);
   
$i=$n;
   
$m=substr($s,0,$n);
   while(
$i<$len) {
      
$m.=$br.substr($s,$i,$n);
      
$i+=$n;
   }
   return 
$m;
}
?>

начиная с php4.1.1 этот баг исправлен
с уважением,
магистр белой магии.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Разбиение длинных слов в сообщении
« Ответ #6 : 02 Июля 2002, 11:16:13 »
2Dm: то есть в 4.1.1 и выше wordwrap вставляет разделитель только в слова, длина которых больше заданной? Так?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28