Высвечивание ссылок. Как правильно сделать?

Печать RSS
137

Автор
Пишу, строю и воображаю
0
Задача:
1. Высвечивать регуляркой ссылки ТОЛЬКО с адресом test.ru
2. Высвечивать ссылки с адресом test.ru даже если пишут: http://test.ru , www.test.ru , http://www.test.ru и test.ru


$str=preg_replace("/(http:\/\/[^ )\r\n!]+)/i","<a href=\"\\1\">\\1</a>",$str);

Вот, такой код нужен, но вышеуказанный код высвечивает ВСЕ ссылки, неважно это с сайта TEST.RU или с другого... Я пытался отредактировать код. Но не смог, чтобы он потом регуляркой фильтровал все виды ссылок: http://test.ru , www.test.ru , http://www.test.ru и test.ru

Оранжевые штаны
0
1. Moto-Moto, что то у тебя там совсем каша в регулярке.. За компом буду посмотрю.
Автор
Пишу, строю и воображаю
0
Жду :-)

Оранжевые штаны
0
1. Moto-Moto, вот, это на скорую руку должно работать.
([http|https|www]+[:\/\/]?[^\s]+)

Оранжевые штаны
0
([http|https|www]+[:\/\/]?[^\s]+)
([http|https|www]+[:\/\/]?[\w\-\_]{3,32}[^\s]+)

Оба варианта рабочие, во втором я указал явно то что если в тексте есть 3 или более латинских символа то текст идущий далее будет считаться ссылкой ровно до следующего пробела, к примеру test.ru. Так же после 32} можно поставить \. это добавит дополнительную проверку на знак точки что будет более явно указывать на то что перед нами текст с указанием домена (прим test.ru) а не обычный набор латинских символов.
Автор
Пишу, строю и воображаю
0
У тебя скайп есть?

Оранжевые штаны
0
6. Moto-Moto, дети спят)) Я не пользуюсь им..
Аська есть в профиле))
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск