1 (edited by PunBB 2016.12.20 09:28)

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);