使用php读取一个URl参数

时间:2013-05-10 10:34:25

标签: php

我想从特定的URl中读取一个参数:

赞:http://www.youtube.com/watch?v=MrOiL74P-9E&feature=watch

输出应为:MrOiL74P-9E

我尝试搜索并找到了这个功能:

function remove_query_part($url, $term)
{
    $query_str = parse_url($url, PHP_URL_QUERY);
    if ($frag = parse_url($url, PHP_URL_FRAGMENT)) {
        $frag = '#' . $frag;
    }
    parse_str($query_str, $query_arr);
    unset($query_arr[$term]);
    $new = '?' . http_build_query($query_arr) . $frag;
    return str_replace(strstr($url, '?'), $new, $url);
}

此函数只删除一个参数并返回其余参数。任何人都可以编辑此功能以仅返回视频ID并忽略URL中的其他内容。

3 个答案:

答案 0 :(得分:3)

$query_str = parse_url($url, PHP_URL_QUERY);
parse_str($query_str, $args);

print $args['v'];   // <- MrOiL74P-9E

我想你知道如何把它变成一个函数......

答案 1 :(得分:2)

又快又脏:

$url='http://www.youtube.com/watch?v=MrOiL74P-9E&feature=watch';

function test($url)
{
    $data=parse_url($url);

    if(!isset($data['query']))
    {
        return null;
    }
    else
    {
        $ex=explode('&', $data['query']);

        foreach($ex as $key => $val)
        {
            $param=explode('=', $val);

            if($param[0]=='v')
            {
                return $param[1];
                break;
            }
        }
    }
}

echo test($url);

答案 2 :(得分:2)

未经测试但您可以尝试....

function remove_query_part($url, $term) { 

// get the query part of the string (i.e. after the '?')
$query_str = parse_url($url, PHP_URL_QUERY);
$queryItems = explode('&', $query_str); 

$item = array(); 
$itemArray = array();
foreach ($queryItems as $item) {
    $itemArray = explode('=', $item); 
if($item[0] == $term) {
    return $item[1]; 
}

} 

return false; 
}