Когда я пишу ссылку непосредственно в сообщении, то часто ставлю после нее точку: http://bbspot.com/archives/index_top11.html. Форум эту последнюю точку тоже рассматривает как часть ссылки, что не есть гуд. ИМХО, последнюю точку из ссылки надо убирать.
если б это можно было сделать одним простым регекспом15.12.05 04:06 Автор: dl <Dmitry Leonov>
Не знаю ни одного урла с точкой в конце (хотя это и не запрещено)15.12.05 12:30 Автор: amirul <Serge> Статус: The Elderman Отредактировано 15.12.05 12:35 Количество правок: 3
Если уж очень припрет, то ссылку с точкой можно вставить в специальное поле (внизу), которое эту самую ссылку преобразовывать не будет или (для продвинутых) заменить ее шестнадцатиричным кодом со знаком процента. Ну а пробел - запрещенный символ, так что
/(bla-bla-bla)\.*\s/
Должно помочь
речь не об этом15.12.05 14:14 Автор: dl <Dmitry Leonov>
Урлы сейчас выкусываются регекспом, который берет все, что начинается с http/https/ftp/ и заканчивается набором стоп-символов. Если я добавлю точку в стоп-символы, урл закончится на первой же точке в адресе. Быстрая правка этого регекспа мне сходу в голову не приходит, а сильно усложнять его не хочется, поскольку отрабатывает он при каждом показе сообщения.
А добавить *после* выкусывания урла из текста откусывание замыкающей точки15.12.05 14:55 Автор: amirul <Serge> Статус: The Elderman
то замена "link" на <a href="link"> проводится при отображении сообщения и в базе хранится сообщение в изначальном виде чтобы его можно было править.
По-моему было бы эффективнее хранить в базе сообщений ссылки уже преобразованные к виду <a href="link">. В случае же, если надо сообщение поправить, то убрать тэги <a> перед правкой сообщения не составляет труда. Зато это снимет нагрузку по преобразованию ссылок при каждом просмотре сообщения.
ЗЫ. Что насчет такого регеспа?:
$comm=~s#((http|ftp)://[\w\.\-?@:=&%\#/]+)([^\.,?:-]*)#<a href="$1" target=_blank>$1$3</a>#g;
Не уверен, что будет работать, но главное идея (на скорую руку переделал рабочий регесп со своего сайта, который тоже страдает от точек в ссылках - идея поправить это у себя пришла только сейчас, когда заметил это на bugtraq :), если при переделке не наделал косяков - должно работать).
да я уже сделал парой регекспов16.12.05 04:32 Автор: dl <Dmitry Leonov> Отредактировано 16.12.05 04:45 Количество правок: 1
Что касается изменения при записи, я все же предпочитаю хранить оригинал, сохраняя гибкость на случай будущих изменений - иначе при очередном изменении в обработке придется еще и старые результаты обработки переделывать.
> ЗЫ. Что насчет такого регеспа?: > $comm=~s#((http|ftp)://[\w\.\-?@:=&%\#/]+)([^\.,?:-]*)# > <a href="$1" target=_blank>$1$3</a>#g;
Неа, не работает. Звездочка во вторых скобках допускает отсутствие соответствующей ей точки, которая спокойно влезает в шаблон первой скобки.
Дык, что ж ты сразу регэксп не привел16.12.05 11:45 Автор: amirul <Serge> Статус: The Elderman