Удаление всех ссылок с текста
Знатоки, помогите решить задачу.
Есть строка, например:
www.google.com.ua?frm=2&scn=3&page=1 какой то текст http://www.google.com.ua какой то текст google.com какой то текст www.google.com какой то текст ....
Нужно вырезать все эти текстовые ссылки оставив не тронутым текст.
Перекопал гугл.. Потерял счет страницам.. то не работает, то вырезает вообще все. Вообщем беда.
Последнее мое достижение:
function delete_link ($str)
{
$reg = '/[href?|url?|http?|https?|www?|\.ru|\.com|\.net|\.info|\.org|\.ua].+/i';
if (preg_match($reg, $str)) {
return preg_replace($reg, '_ссылка_', $str);
} else {
return $str;
}
}
в этом коде беда в том, что когда он находит ссылку, то удаляет, но вместе с остальным, если он есть, текстом который есть после ссылки.
Ответы (1 шт):
Автор решения: Эдуард
→ Ссылка
echo delete_link('www. google. com.ua?frm=2&scn=3&page=1 какой то текст http://www. google. com.ua какой то текст google.com какой то текст www.google.com какой то текст ....');
function delete_link($str)
{
$reg = '~(?:https?://)?(?:www\h*\.\h*)?(?:\w+\h*\.\h*){1,2}(?:ru|com|net|info|org|ua)\S*~i';
return preg_replace($reg, '_ссылка_', $str);
}