Есть ли там регулярное выражение, которое может найти строку, содержащую слово, которое начинается с http: // или www и завершает его с помощью <a>$1</a> ?
Был googling, но я не могу найти окончательного.
Другой вопрос: не могли бы вы каким-то образом игнорировать его, если его внутри <img> ?
Огромное спасибо!
$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.