Topic: Найти все ссылки на странице. Регулярные выраженя
Вот несколько регулярок для того чтобы найти ссылки и потом делать с ними что пожелаете
$content = 'какой нибудь текст со ссылками';
$patern1 = '/(https?:\/\/)?(www\.)?([-а-яa-zёЁцушщхъфырэчстью0-9_\.]{2,}\.)(рф|[a-z]{2,6})/i';
$patern2 = "~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~";
$patern3 = '/(https?:\/\/)?(www\.)?([-а-яa-z0-9_\.]{2,}\.)(рф|[a-z]{2,6})((\/[-а-яa-z0-9_]{1,})?\/?([a-z0-9_-]{2,}\.[a-z]{2,6})?(\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)/i';
//находит также и домены РФ без протокола
$patern4 = '/(https?:\/\/)?(www\.)?([-а-яa-zёЁцушщхъфырэчстью0-9_\.]{2,}\.)(рф|[a-z]{2,6})((\/[-а-яёЁцушщхъфырэчстьюa-z0-9_]{1,})?\/?([a-z0-9_-]{2,}\.[a-z]{2,6})?(\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)/i';
preg_match_all($patern1, $content, $matches);
print_r($matches);