получить видео YouTube ID с PHP - PullRequest
       107

получить видео YouTube ID с PHP

4 голосов
/ 02 апреля 2012

В настоящее время я пишу веб-приложение, в котором некоторые страницы сильно зависят от возможности вставлять правильное видео с YouTube и воспроизводить его.URL-адреса YouTube предоставляются пользователями, и по этой причине, как правило, будут предложены варианты, один из которых может выглядеть следующим образом:

http://www.youtube.com/watch?v=y40ND8kXDlg

, а другойможет выглядеть так:

http://www.youtube.com/watch/v/y40ND8kXDlg

В настоящее время я могу получить идентификатор из последнего, используя код ниже:

function get_youtube_video_id($video_id)
{

    // Did we get a URL?
    if ( FALSE !== filter_var( $video_id, FILTER_VALIDATE_URL ) )
    {

        // http://www.youtube.com/v/abcxyz123
        if ( FALSE !== strpos( $video_id, '/v/' ) )
        {
            list( , $video_id ) = explode( '/v/', $video_id );
        }

        // http://www.youtube.com/watch?v=abcxyz123
        else
        {
            $video_query = parse_url( $video_id, PHP_URL_QUERY );
            parse_str( $video_query, $video_params );
            $video_id = $video_params['v'];
        }

    }

    return $video_id;

}

Как я могу работать с URL-адресами, которые используют ?v версию, а не /v/ версию?

Ответы [ 11 ]

0 голосов
/ 02 апреля 2012
$parts = explode('=', $link);

// $parts[1] will y40ND8kXDlg

Этот пример работает, только если в URL есть один '='.Скорее всего будет больше?

...