Вероятно, самый безопасный способ - использовать фрагменты кода из WordPress. Загрузите последнюю версию (в настоящее время 3.1.1) и посмотрите wp-includes / formatting.php. Есть функция с именем make_clickable, которая имеет простой текст для параметра и возвращает отформатированную строку. Вы можете получить коды для извлечения URL-адресов. Это довольно сложно, хотя.
Это регулярное выражение может быть полезным.
preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match);
Но это регулярное выражение по-прежнему не может удалить некоторые некорректные URL (например, http://google:ha.ckers.org
).
Смотрите также:
Как имитировать поведение Auto-Link в StackOverflow