从存储在DB中的URL中的变量中提取变量

时间:2010-10-06 15:50:38

标签: php

如果$ youtubeurl = http://www.youtube.com/watch?v=ytWAw6YqN10S

如何创建“v”变量并将其从$ youtubeurl

中提取出来

实施例: 我有存储在数据库中的youtube网址,但是当我嵌入播放器时,网址需要格式化为

www.youtube.com/v/ytWAw6YqN10?fs=1

3 个答案:

答案 0 :(得分:2)

最简洁的方法是使用parse_url()来提取查询字符串,并使用parse_str()从中获取v变量。

$youtubeurl = "http://www.youtube.com/watch?v=ytWAw6YqN10S";
$values = array();

$query_string = parse_url($youtubeurl, PHP_URL_QUERY); // extract query string

parse_str($query_string, $values); // turn query string into associative array

echo $values["v"]; // will echo "ytWAw6YqN10S" 

答案 1 :(得分:0)

您可以使用正则表达式,如:

preg_match_all("/^http://www.youtube.com/watch\?v=(.*).*/", $youtubeurl, $matches);

其中$ matches将是一个包含()中的匹配的数组,即变量v。

我不确定我给出的表达方式,但我相信这个想法会奏效。

答案 2 :(得分:0)

 $youtubeurl = "http://www.youtube.com/watch?v=ytWAw6YqN10S";
 $pos = strpos($youtubeurl, "?v=");
 $v = "";
 if($pos !== FALSE)
 {
     $v = substr($youtubeurl, $pos + 3);
 }

 // now $v should contain the value you needed provided the url was valid