据我了解,youtube.com使用三种类型的网址作为其视频链接。

http://www.youtube.com/watch?v=8uLPtmCroQ8&feature=related
http://www.youtube.com/watch?v=8uLPtmCroQ8
http://youtu.be/8uLPtmCroQ8

我可以通过以下任何一种方式将此网址提交到我的网站,并将该网址存储到一个名为$video_code的自定义字段中。我需要删除视频ID之后的所有参数,因此,如果用户提交上面的第一个网址,则&feature=related会被删除。我正在使用php。

最佳答案

如果我正确理解了您的问题,则可以使用类似的方式将视频ID存储在数据库中,然后根据需要构造URL。

function getVideoId($url)
{
    $parsedUrl = parse_url($url);
    if ($parsedUrl === false)
        return false;

    if (!empty($parsedUrl['query']))
    {
        $query = array();
        parse_str($parsedUrl['query'], $query);
        if (!empty($query['v']))
            return $query['v'];
    }

    if (in_array(strtolower($parsedUrl['host']), array('youtu.be', 'www.youtu.be')))
        return trim($parsedUrl['path'], '/');

    return false;
}

$input = array('http://www.youtube.com/watch?v=8uLPtmCroQ8&feature=related', 'http://www.youtube.com/watch?v=8uLPtmCroQ8', 'http://youtu.be/8uLPtmCroQ8');

foreach ($input as $url)
{
    echo getVideoId($url) . PHP_EOL;
}

10-06 06:31