Есть ли там регулярное выражение, которое может найти строку, содержащую слово, которое начинается с 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.