Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.09.2003, 20:55
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 11  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Нирва, дружище, ты не прав

copy & paste & see

<?
$str = "строка товя оргромная с мегачем-то там таким, кстати, самое длинное. известное мне и частоупотребляемое слово - достопримечтальность";
$res .= wordwrap($curr,10," ",1);
echo $res;
?>

Результат должен быть приссерно таким :

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

Если слово меньше максимума, вордврап его трогать не будет

Старый 26.09.2003, 21:58
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 12  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Hint: правильная реализация должна основываться на двух константах: m=максимальная допустимая длина слова и n=размер нарезаемого куска. А совсем хорошо -- если будет еще и k=минимальный размер нарезаемого куска.

Так что все приведенные варианты можно рассматривать только как вариант на черный день...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 26.09.2003 в 22:00.
Старый 26.09.2003, 22:17
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 13  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
2крейзи и компадре:
стойте-ка стойте-ка.

Цитата:
находит в строке длинные слова, больше 20 знаков, и разбивает их пробелами.
было так ведь, верно?
длинные слова находит? (ну всем понятно что 10 можно поменять на 20). находит.
пробелами разбивает? разбивает. ich verstehen euch nicht.
что не так?
__________________
а мы летим орбитами путями не избитыми...

Старый 26.09.2003, 22:38
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 14  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
m=20

Осталось добавить n и k.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 26.09.2003, 23:23
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 15  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Да нет, все так ... Просто не совсем правильно как мне кажиться ...

зачем перегружать машину излишними explod-ами (представляеш какой массив может получиться если текст большой) и foreacham-и если тот код который написал я зделает то же самое что и твой ?

Старый 26.09.2003, 23:42
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 16  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
а прег реплейс знач в воздухе работает =)
да нет, я просто привел пример без регуляров. если бы у меня стояла такая задача я бы воспользовался ими.

мне теперь не это интересно... мнев от что интересно - ход мыслей крейзи. пояснишь?
__________________
а мы летим орбитами путями не избитыми...

Старый 26.09.2003, 23:52
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 17  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) Nirva
мне теперь не это интересно... мнев от что интересно - ход мыслей крейзи. пояснишь?
Постулат 1. Чем реже мы рвем слова -- тем лучше. Ибо разорванные слова труднее прочесть.

Вывод: рвем только слова длинее m. Т.е. m -- длина, при которой слово мы никак не может оставить целым.

Постулат 2. Если мы уже решили рвать слово, то лучше разбивать его на куски удобного размера. Поскольку m -- максимум, то n (максимальная длина куска) будет меньше m.

Постулат 3. При разбивке от конаца слова могут отрезаться 1-3 буквы, что некузяво. Следовательно, стоит указать k, задающее минимальный размер куска.

Значения, которые кажутся мне разумными:

m=25
n=15
k=4
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 27.09.2003, 00:11
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 18  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Нирва
Блин ! И опять мы про воздух ...

Ты посмотрел код который я предлагал ? Где там регексп ?Ты его запустил ?

Ребята, конечно хорошо все константами определять, но и оптимизировать нада ...

Единственный способ который я вижу сделать то что крэйзи предлогает это цикл в котором будем вырезать по букве (!!!) субстр-ом и вставлять в новую строку (добовляя пробел если смежных букв слишком много ) ... пока старая не закончиться.

Это же итераций будет сколько букв!

Wordwrap специально создан для того что хочет афтор топика (помоему) ... Не надо морочиться . Просто принять как факт.


Последний раз редактировалось kompadre; 27.09.2003 в 00:15.
Старый 27.09.2003, 00:24
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 19  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
ЗЫ про константы ...
просто вместо 10 поставить более удобное число ... скажем 15 как крэйзи правильно заметил

Старый 27.09.2003, 00:26
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 20  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
компадре:
<?
$str = "строка товя оргромная с мегачем-то там таким, кстати, самое длинное. известное мне и частоупотребляемое слово - достопримечтальность";
$res .= wordwrap($curr,10," ",1);
echo $res
?>
ты про это? ну переменной с именем curr не существует, черт с ним, забыл. аа... тьфу ты, ну да, конечно. я прогнал. не пользовался вордврапом давно =) да, верно.

итак, мы имеем: либо быструю функцию приведенную выше (не забыть исправть curr на str) или то, что предлагает крейзи, - придется писать дольше и процесс будет длиннее. Вывод: делаем первый случай или раз это оочень важно делаем второй. Все зависит от того, что используется в качестве строки.
__________________
а мы летим орбитами путями не избитыми...

Создать новую тему   Часовой пояс GMT +4, время: 01:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.