Я пытаюсь захватить каждый параметр 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; } }
Вам не нужно делать это вручную, PHP уже предоставляет эту функциональность в глобальной переменной $ _GET:
<?php foreach($_GET as $key => $value) echo $key . " : " . $value; ?>
Если это запрос GET, тогда все параметры будут в $ _GET. Форма POST будет в $ _POST. Оба содержатся в $ _REQUEST.
Существует гораздо более простой способ сделать это, чем использовать цикл. Используйте встроенную функцию 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);
Вы ищете $_GET суперглобальный
$_GET
foreach ($_GET as $key => $value) { echo $key . ' -- ' . $value; }
Вы можете получить доступ к любым $_GET значениям, используя этот код $_GET['sub1'], который вернет sub-1
$_GET['sub1']
sub-1