Сделать ссылки интерактивными с регулярным выражением

Есть ли там регулярное выражение, которое может найти строку, содержащую слово, которое начинается с http: // или www и завершает его с помощью <a>$1</a> ?

Был googling, но я не могу найти окончательного.

Другой вопрос: не могли бы вы каким-то образом игнорировать его, если его внутри <img> ?

Огромное спасибо!

Related of "Сделать ссылки интерактивными с регулярным выражением"

  $text = trim($text); while ($text != stripslashes($text)) { $text = stripslashes($text); } $text = strip_tags($text,"<b><i><u>"); $text = preg_replace("/(?<!http:\/\/)www\./","http://www.",$text); $text = preg_replace( "/((http|ftp)+(s)?:\/\/[^<>\s]+)/i", "<a href=\"\\0\" target=\"_blank\">\\0</a>",$text); 

Удачи вам в этом – найти начало довольно легко (большую часть времени); найти конец? Удачи:

  • http://example.com/bob.jones.4.
  • http://example.com/bob.jones.4?
  • http://example.com/bob.jones.4!
  • http://stackoverflow.com/questions/1242733/make-links(oh-noes)
  • http://example.com/bob.'magic'.jones*2!
  • http://example.com/~(*)!

Это действительные URL-адреса. См. RFC2396. Но иногда вам нужна прецизионная пунктуация, иногда вы этого не делаете.

/ me задается вопросом, что он может использовать URL с (*')! в нем, теперь, когда он знает, что это разрешено RFC2396.