Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Превращение http://site.ru и http://www.site.ru и site.ru и www.site.ru в ссылки
 
 автор: Maxam   (11.05.2010 в 01:47)   письмо автору
 
 

Как превратить http://site.ru и http://www.site.ru и site.ru и www.site.ru в ссылки?

Только есть одно НО:
1. В тексте встречается http:// и вообще адреса сайтов очень много раз, которые заменять нельзя! Нужно менять только те ссылки, по сторонам которых либо ничего нет (mail.ru, а не src="mail.ru или href="mail.ru), либо пробелы ( mail.ru ).

Сможете помочь? Часа 2 сижу мучаюсь.

  Ответить  
 
 автор: neadekvat   (11.05.2010 в 02:20)   письмо автору
 
   для: Maxam   (11.05.2010 в 01:47)
 

Замену ссылок без вашего "НО" вы сделать смогли? Покажите, если да

  Ответить  
 
 автор: Maxam   (11.05.2010 в 08:36)   письмо автору
 
   для: neadekvat   (11.05.2010 в 02:20)
 

$text = preg_replace("#http:\/\/(.*?)#i", '<a href="http://$1">$1</a><img src="./icons/external.png">' , $text);

Можно ещё конечно вариант с:
$text = preg_replace("#http:\/\/www\.([a-z0-9-]{2,63}\.[a-z]{2,6})#i", '<a href="http://$1">$1</a><img src="./icons/external.png">' , $text);

но я не знаю, как задать в регулярке условие: может быть, а может и не быть (это я про http:// и www.).

  Ответить  
 
 автор: Tonik992   (11.05.2010 в 23:56)   письмо автору
 
   для: Maxam   (11.05.2010 в 08:36)
 

А можно попробовать паттэрны в массив запихнуть, дабы избежать условные выражения в самом регулярном выражении... Каждый возможный случай описываешь в любом из элементов массива паттэрнов.. затем регулярке передаешь этот массив. Должно заработать.

  Ответить  
 
 автор: Maxam   (12.05.2010 в 00:03)   письмо автору
 
   для: Tonik992   (11.05.2010 в 23:56)
 

Приму к сведению.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования