0

我想从 youtube 链接中获取个人 ID,以便以后可以使用它来提取其他信息(例如其缩略图图像)并将其插入到嵌入式 iframe 中。

我注意到,我希望 youtube 上的所有网址都以http://www.youtube.com/watch?v= 唯一视频 ID开头,然后根据一些事情可以结束类似&list=RD02M5u5zXVmoHM. 但是唯一的 id 总是&在它之后和watch?v=之前。这是最好的方法吗?这个写对了吗?

$link=$_POST['link'];
$link_id=str_replace('http://www.youtube.com/watch?v=', '', $link);
$link_id=strstr($link_id, '&', true);

这来自表单数据。我可能会遇到来自 youtube URL 的其他变量吗?

4

2 回答 2

1

parse_url()parse_str()的组合将是 PHP 为您处理脏工作的一种更简单的方法。例子:

$video_id = false;

$url_parts = parse_url($link);
$query_params = array();

if (isset($url_parts['query']))
{
    parse_str($url_parts['query'], $query_params);
}

if (isset($query_params['v']))
{
    $video_id = $query_params['v'];
}

现在$video_id包含您需要的 ID。

于 2013-04-29T19:38:51.967 回答
1

你想要做的是使用:http://php.net/pase_urlhttp://php.net/parse_str像这样:

<?php
$info = parse_url("https://www.youtube.com/watch?v=DA57FOJSdM8");
parse_str($info["query"], $query);
print_r($query);

// Outputs: Array ( [v] => DA57FOJSdM8 )
于 2013-04-29T19:40:25.183 回答