2012-04-04 49 views
1

我有此URL:如何只获取一段网址? (PHP)

example.com/?do=search&q=testing+this+out 

我需要后& q到部分存储=在变量中。

什么PHP函数将是最好的做到这一点,爆炸,切片?

P.S.我使用$request_url = $_SERVER['REQUEST_URI'];来获取URI。

+0

'parse_url() 'http://www.php.net/manual/en/function.parse-url.php – Cfreak 2012-04-04 21:42:02

+4

为什么不''_ _GET [“q”];' – Ben 2012-04-04 21:42:36

回答

5

如果你只需要q的值,你可以简单的写:

$value = $_GET['q']; 
+0

我认为OP有一个字符串包含url并且想要分解,而不是当前正在执行的脚本的实际URL。 – 2012-04-04 21:43:05

+0

@MarcB我不这么认为,请阅读P.S. – Ben 2012-04-04 21:43:55

+1

@ben:d'oh ...我想我需要休息几个星期...... – 2012-04-04 21:44:26

4

parse_url()切“东经骰子链接到它的组件,然后parse_str()将采取查询字符串,并将其分解成常规键值数组。

$url = 'your url here'; 
$parts = parse_url($url); 
$query = parse_str($parts['query']); 
echo $query['q']; 
0

我不明白为什么$ _GET是不够的。但柜面它不是,在这里:

$ php -r '$url = "http://example.com/?do=search&q=testing+this+out"; $parts = parse_url($url); $vars = explode("&", $parts["query"]); print_r($vars);' 
Array 
(
    [0] => do=search 
    [1] => q=testing+this+out 
) 
0

mabye更快速,更简单...

$requested_query_vars = $_SERVER["QUERY_STRING"]; 

或parse_url()PHP函数

$requested_query_vars = parse_url($request_url, PHP_URL_QUERY); 
你想