2012-04-04 3 views
1

У меня есть этот URL:Как получить только часть URL-адреса? (PHP)

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

Мне нужно хранить часть после & ц = в переменной.

Какая функция PHP будет лучше всего для этого, взорваться, срез?

P.S. Я использую $request_url = $_SERVER['REQUEST_URI'];, чтобы получить URI.

+0

вы хотите 'parse_url() 'http://www.php.net/manual/en/function.parse-url.php – Cfreak

+4

Почему бы не' $ _GET ["q"]; ' – Ben

ответ

5

Если вам просто нужно значение ц, вы можете просто написать:

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

Я думаю, что OP имеет строку, содержащую url, и хочет разложить это , а не фактический url для исполняемого в настоящее время скрипта. –

+0

@MarcB Я так не думаю, прочитайте P.S. – Ben

+1

@ben: d'oh ... Думаю, мне нужно спать на несколько недель ... –

4

Там в parse_url() нарезать н кости 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); 
Смежные вопросы