専用の関数で同じことができる場合は、正規表現を使用しないでください。
parse_url
URLをセグメントに分割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;
}