Автор Тема: длинное слово  (Прочитано 6866 раз)

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

Оффлайн st_steev

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
длинное слово
« : 25 Сентября 2002, 13:15:30 »
Подскажите, плззз... Вобщем в форуме добавляются теги в виде [a ]link[ /a], которые потом при выводе формируются в link.Ну дык вот, этот линк, который между тегами, если он длинный, не помещается в таблицу, тем самым растягивая ее. Вот и вопрос: как сделать так, чтоб этот линк между тегами переносился по необходимости на другую строчку?
Тут либо я уже туплю, либо одно из двух...
Спасибо заранее:)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
длинное слово
« Ответ #1 : 25 Сентября 2002, 13:39:28 »
Разбивай слово (линк) на куски по 4-5 символов и вставляй символ мягкого переноса: &shy— &#173 . Есть модуль смыслового переноса для русского языка, но я бы не советовал его юзать. Кривовато -- раз, увеличивает код -- два.
« Последнее редактирование: 25 Сентября 2002, 13:46:59 от NeoNox »
The documentations is your friend

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
длинное слово
« Ответ #2 : 25 Сентября 2002, 16:29:42 »
Цитировать
как сделать так, чтоб этот линк между тегами переносился по необходимости на другую строчку?

а нафига переносить? сделай лучше как на этом форуме, что где-то в середине вставляется "..." и всем понятно, что обрезается, главное чтобы в href все было верно прописано.
Цитировать
Есть модуль смыслового переноса для русского языка,

дело в том, что он в этом случае не подойдет ведь разбивать надо непосредственно урл, а не слово... см. цитату:
Цитировать
link

какой может быть смысловой перенос в link? ;)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
длинное слово
« Ответ #3 : 25 Сентября 2002, 19:07:34 »
Цитировать
дело в том, что он в этом случае не подойдет ведь разбивать надо непосредственно урл,

А я так понял, что разбивать надо именно слово (разве адрес в href\'e влияет на компоновку???)
TANSTAAFL

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
длинное слово
« Ответ #4 : 25 Сентября 2002, 19:23:27 »
2 Maniac
Цитировать
А я так понял, что разбивать надо именно слово (разве адрес в href\'e влияет на компоновку???)


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

Цитировать
Вобщем в форуме добавляются теги в виде [a ]link[ /a], которые потом при выводе формируются в link


видишь, что link повторяется и в href и между тегами, поэтому надо разбивать урл! просто ведь все :) может быть автор хотел спросить что-то другое, но спросил именно это. имхо.
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
длинное слово
« Ответ #5 : 25 Сентября 2002, 19:50:26 »
Цитировать
может быть автор хотел спросить что-то другое, но спросил именно это.

Давайте тогда автора дождемся. ;)
The documentations is your friend

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
длинное слово
« Ответ #6 : 25 Сентября 2002, 23:44:37 »
Цитировать
Давайте тогда автора дождемся.

пролетала у меня как-то такая мысля, NeoNox, ты прямо читаешь их :)
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн st_steev

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
длинное слово
« Ответ #7 : 26 Сентября 2002, 03:02:59 »
Тут имеется ввиду обычная ситуация: вместо тега
вставляется [a ] [/a ] а линк между ними при последующей обработке идет как в href="link" так и в название, те то, что между тегами. и надо разбить то, что между тегами.
Кстати,USE  ты говорил про то, что б выписывать только несколько первых символов, а остальное заменить ... Я тоже об этом задумавался. Вот только я регэкспами неочень покачто. Если нетрудно, то подскажи рег выражение для этого, пожалуйста:)  Заранее спасибо:)

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
длинное слово
« Ответ #8 : 26 Сентября 2002, 15:36:21 »
Цитировать
Если нетрудно, то подскажи рег выражение для этого, пожалуйста


Ееееххх... Какие ж тут регэкспы? :)

$MAX_LEN = 20;
$url_text = substr($url, 0, $MAX_LEN).\'...\';
print qq($url_text);

:) Alles.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн st_steev

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
длинное слово
« Ответ #9 : 26 Сентября 2002, 17:41:44 »
Ну до этого и я догадался. Но этих урлов много может быть, и я сомневаюсь, что эта штука заменит их всех....

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
длинное слово
« Ответ #10 : 26 Сентября 2002, 18:12:09 »
Если урл не выделяется для проверки и обработки, то однозначно ;)
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн st_steev

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
длинное слово
« Ответ #11 : 26 Сентября 2002, 18:58:09 »
АААААААААААААААААААААА, не допру:(
Вот смотри, есть, например, массив @mes. Каждый его элемент идет в отдельную ячейку таблицы, те делается цикл. Ну вот, в каждом элементе $mes[$i] надо найти [a ]aaaaaaaaaa[/ a] и заменить на aaa.... Т.о., создается цикл, где выводится таблица с этими сообщениями. Ну вот, там(в этом цикле) и происходит замена в каждом элементе $mes[$i].  Получается заменить только первое. Плзззз:)
Просто я уже ничего не соображаюююююююююююююююю
« Последнее редактирование: 26 Сентября 2002, 19:05:52 от st_steev »

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
длинное слово
« Ответ #12 : 26 Сентября 2002, 19:23:41 »
Как вариант (это навскидку, и немного громоздко :) )


$MAXLEN=10;

foreach my $mes (@mes) {

   $mes =~ s|\\[a\\](.*?)\\[/a\\]|qq().(length($1)<=$MAXLEN?$1:(substr($1,0,$MAXLEN)."...")).""|eg;

#do smth with $mes

}


А вообще - perldoc perlre и perldoc perlop. ;)
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
длинное слово
« Ответ #13 : 26 Сентября 2002, 19:30:52 »
Упс :D
Смайлик в коде - это двоеточие с открывающейся скобкой :)
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн st_steev

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
длинное слово
« Ответ #14 : 27 Сентября 2002, 00:13:07 »
Вот спасибо, если бы ты только знал как выручил:) У меня вся запарка и была в условии в регскэпе:) Короче, все, перебираюсь теперь на этот форум!!!!!!!!!!

 

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