从字符串变量的字符串中提取字符串

时间:2013-04-29 19:26:25

标签: php youtube

我想从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网址中的其他变量吗?

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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 )