Есть много похожих вопросов, но я пробовал около 15 различных примеров preg_match, и ни один из них не работает полностью.
У меня много пользовательского контента, и у большинства из него есть URL-адреса .. иногда в форме http://www.site.com/page, иногда как www.site.com и довольно часто в скобках (www.site.com/ page.html).
Мне не повезло найти шаблон, который будет анализировать строку и преобразовывать все это в абсолютные ссылки html. Хотите знать, если кто-нибудь может мне помочь. Я нашел несколько регулярных выражений для поиска выражений, которые, казалось бы, работали, но я не знаю, как правильно преобразовать ссылку в абсолютную HTML, когда некоторые с http, а некоторые без ...
Вот несколько выражений, которые я пробовал:
function makeLinks($text) {
$text = preg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
'(<a href="\\1">\\1</a>)', $text);
$text = preg_replace('(www\.[a-zA-Z0-9\-]\.[^ ]+)',
'(<a href="\\1">\\1</a>)', $text);
return $text;
}
function makeLinks($text) {
$text = preg_replace('~(?:www|http://)\S+~', '<a href="$0">$0</a>', $text);
return $text;
}
function makeLinks($text) {
$text = preg_replace( '@(?<![.*">])\b(?:(?:https?|ftp|file)://|[a-z]\.)[-A-Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]@i', '<a href="\0" target="_blank">\0</a>', $text );
return $text;
}