Регулярное выражения поиска не отформатированных ссылок.

Artemeey

Новичок
Одно дело когда ссылка написана так href="...", другое когда она написана сплошным тексом http://mail.ru или вовсе mail.ru.

Мне нужно чтобы preg_replace обрамил ссылки html кодом ссылок.

PHP:
preg_replace('/[^=]"(http:\/\/.*?)"/', '<a href=$0>$1</a>', $text);
Что же тут не так. Во первых данный пример раотает только с кавычками... А мне так не надо, было бы лучше без кавычек.
Во-вторых есть проблема. если искать безкавычек, что точку в коне предложения он может принять за продолжение ссылки. тоесть нужно как то рассматривать пробел или конец строки после точки.

Так же вопрос в догонку. написал такой скрипт:
PHP:
preg_replace("/($pattern)/i", '<span style="background-color:'.$this->illumination.';">$1</span>', $text);
Может кому пригодится... Он подкрашивает в тексте фразу определенным цветом.
тут минус в том, что текс может быть html кодом, или являться параметром этого кода. наприме <input value="Привет"> - слово привет тут подкрашивать не надо, нужно как то модернизировать этот код.

Спасибо.
 

SiZE

Новичок
Я правда не тестировал, хорошо бы пример текста выкладывать.

preg_replace( '#href=([^\w]*)#i', '<a href="\\1">\\1</a>', $text );
 

Single

пилот капсулы
PHP:
echo preg_replace("~(http://)?((www.)?[a-z]+.[a-z]{2})~", "<a href='http://\\2'>\\0</a>", "Я пошел гулять на yandex.ru");
осталось только учесть что формат урл несколько сложнее чем в моем паттерне.
 

Artemeey

Новичок
Спасибо, оч удобно, но ты прав, мне необходимо учесть всю сложность url, в этом то и проблема.

Кстати запись [a-z]{2} тут вообще все портит(.

Проблема остается. Ищется УНИВЕРСАЛЫНЙ метод выделения ссылок.
 

Artemeey

Новичок
Если найдешь будет здорово. По поисковой фразе находит не то что ищу.
 

Artemeey

Новичок
Да нет, спасибо, проще js напишу, который вставляет ссылки, если на то пошло). Шутишь что-ли.
 

Artemeey

Новичок
Это будет не парсер а редактор). Во-первых редакторы типа textatea уже написаны, во-вторых парсить не придется, это делается событиями типа нажать, вписать, получить ссылку.
 
Сверху