Помогите с регулярным выражением url
[SIZE="1"]$text=preg_replace("#(^|\s|-|:| |\()(http(s?)://|(www\.))((\S{25})(\S{5,})(\S{15})([^\<\s.,>)\];'\"!?]))#i", "\\1<a class=\"main\" target=\"_blank\" href=\"http\\3://\\4\\5\">\\4\\6...\\8\\9</a>", $text);
$text=preg_replace("#(^|\s|-|:|\(| |\xAB)(http(s?)://|(www\.))((\S+)([^\<\s.,>)\];'\"!?]))#i", "\\1<a class=\"main\" target=\"_blank\" href=\"http\\3://\\4\\5\">\\4\\5</a>", $text]);
$text = preg_replace( "#(<a[^>]*>[^\/]+)\/<\/a>#", "$1</a>", $text);[/SIZE]
Всё бы ничего. Но проблема. При переходе на следующую строку (т.е. если длинная ссылка), она прекращает свою работу. Вопрос в чем. Как изменить текущую регулярку, чтобы ограничением был только пробел и самостоятельный переход на след. строку. (['\"<> ]) вот например. Или если есть у кого-нибудь дайте грамотный preg_replace.
Непонятна проблема.
непонятно, как URL может быть многострочным… или я что-то пропустил?
Ну допустим юзер отправляет текст, в котором хранится длинный url. Это текст выводится в определенном месте с определенной шириной. Этот url на всю длину не влезает и переносится на другую строку, но почему-то уже без <a href.. как изменить или сделать новое регулярное выражение чтобы <a href длился правильно, а не оканчивался после нехватки ширины?
Как я понял у меня ещё в mysql базу записывается как-то странно текст. ссылка делится там по частям и так и выводится по частям. Хз почему делится. Когда я их самостоятельно соединяю они правильно выводятся.
понял ошибку. у меня textarea стоял wrap="hard". Поэтому длинные ссылки переносились а их перенос считывался как <br>