как сделать регулярку на код ютуба

Тема в разделе "Как сделать...", создана пользователем sarkis, 10 авг 2015.

  1. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    249
    Симпатии:
    36
    всем привет ...В поле должна быть проверка на наличие youtu.be в https:// youtu.be /s9vYn7YnXcY. Т.е в поле добавляют видео и оно заносится в базу..
    Как реализовать ?
     
  2. invader

    invader Серый кардинал в отставке :)

    Moderator
    • Супермодератор
    Регистр.:
    3 апр 2006
    Сообщения:
    2.718
    Симпатии:
    5.693
    Код:
    function replaceyoutube($text)
    {
        $text = preg_replace('~
            # Match non-linked youtube URL in the wild
            https?://         # Required scheme. Either http or https.
            (?:[0-9A-Z-]+\.)? # Optional subdomain.
            (?:               # Group host alternatives.
            youtu\.be/      # Either youtu.be,
            | youtube\.com    # or youtube.com followed by
            \S*             # Allow anything up to VIDEO_ID,
            [^\w\-\s]       # but char before ID is non-ID char.
            )                 # End host alternatives.
            ([\w\-]{11})      # $1: VIDEO_ID is exactly 11 chars.
            (?=[^\w\-]|$)     # Assert next char is non-ID or EOS.
            (?!               # Assert URL is not pre-linked.
            [?=&+%\w]*      # Allow URL (query) remainder.
            (?:             # Group pre-linked alternatives.
            [\'"][^<>]*>  # Either inside a start tag,
            | </a>          # or inside <a> element text contents.
                )               # End recognized pre-linked alts.
                )                 # End negative lookahead assertion.
                [?=&+%\w-]*        # Consume any URL (query) remainder.
                ~ix',
            'http://www.youtube.com/embed/$1',
            $text);
        return $text;
    }