1

YouTube の URL からのみビデオ ID を取得するにはどうすればよいですか?

例えば、

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

URL の「v」の後に他の情報が含まれることがあります。

http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index

他の情報は必要ありません。ビデオ ID だけです。

私は爆発を使用することしか考えられません。

$url  = "http://www.youtube.com/watch?v=aPm3QVKlBJg";
$pieces = explode("v=", $url);

しかし、このような URL をクリーンアップする方法は?

http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index

4

1 に答える 1

10

専用の関数で同じことができる場合は、正規表現を使用しないでください。

parse_urlURLをセグメントに分割parse_strし、クエリ文字列部分をキー/値配列に分割するために使用できます。

$url = 'http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index'

// break the URL into its components
$parts = parse_url($url);

// $parts['query'] contains the query string: 'v=Z29MkJdMKqs&feature=grec_index'

// parse variables into key=>value array
$query = array();
parse_str($parts['query'], $query);

echo $query['v']; // Z29MkJdMKqs
echo $query['feature'] // grec_index

別の形式では、parse_str変数を現在のスコープに抽出します。vこれを関数に組み込んで、パラメーターを見つけて返すことができます。

// Returns null if video id doesn't exist in URL
function get_video_id($url) {
  $parts = parse_url($url);

  // Make sure $url had a query string
  if (!array_key_exists('query', $parts))
    return null;

  parse_str($parts['query']);

  // Return the 'v' parameter if it existed
  return isset($v) ? $v : null;
}
于 2010-10-28T16:58:36.520 に答える