Как получить параметры URL с помощью PHP? - PullRequest
2 голосов
/ 18 августа 2010

Я пытаюсь захватить каждый параметр URL и отображать их с первого по последний, но я хочу иметь возможность отображать любые параметры в любом месте страницы. Как я могу это сделать? Что мне нужно добавить или изменить в моем сценарии?

Вот пример значения URL.

http://www.localhost.com/topics/index.php?cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4

Вот мой PHP-скрипт.

$url = $_SERVER['QUERY_STRING'];
$query = array();

if(!empty($url)){
  foreach(explode('&', $url) as $part){
    list($key, $value) = explode('=', $part, 2);
    $query[$key] = $value;
  }
}

Ответы [ 4 ]

15 голосов
/ 18 августа 2010

Вам не нужно делать это вручную, PHP уже предоставляет эту функциональность в глобальной переменной $ _GET:

<?php
    foreach($_GET as $key => $value)
        echo $key . " : " . $value;
?>
1 голос
/ 18 августа 2010

Если это запрос GET, тогда все параметры будут в $ _GET. Форма POST будет в $ _POST. Оба содержатся в $ _REQUEST.

0 голосов
/ 18 августа 2010

Существует гораздо более простой способ сделать это, чем использовать цикл. Используйте встроенную функцию parse_str (). Это разделит запрос uri на пары ключ => значение. Пример:

$url = "cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4";
$query = array();
parse_str( $url, $query );
print_r($query);
0 голосов
/ 18 августа 2010

Вы ищете $_GET суперглобальный

 foreach ($_GET as $key => $value) {
    echo $key . ' -- ' . $value;
}

Вы можете получить доступ к любым $_GET значениям, используя этот код $_GET['sub1'], который вернет sub-1

...