Рассмотрим на примере URL: https://example.com/category/page?sort=asc
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $url;
// https://example.com/category/page?sort=asc
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$url = explode('?', $url);
$url = $url[0];
echo $url;
// https://example.com/category/page
$url = $_SERVER['REQUEST_URI'];
echo $url;
// /category/page?sort=asc
$url = $_SERVER['REQUEST_URI'];
$url = explode('?', $url);
$url = $url[0];
echo $url;
// /category/page
echo $_SERVER['QUERY_STRING'];
// sort=asc
Иногда нужно быстро получить GET-параметр из строки с URL, в этом поможет PHP функция parse_url().
$url = 'http://site.ru/path?email=mail@site.ru&name=site';
$parts = parse_url($url);
parse_str($parts['query'], $query);
// Все GET-параметры
print_r($query);
// Параметр «email»
echo $query['email'];
Для частого использования лучше применять функцию:
function getUrlQuery($url, $key = null)
{
$parts = parse_url($url);
if (!empty($parts['query'])) {
parse_str($parts['query'], $query);
if (is_null($key)) {
return $query;
} elseif (isset($query[$key])) {
return $query[$key];
}
}
return false;
}
// Все GET-параметры
$data = getUrlQuery('http://site.ru/path?email=mail@site.ru&name=site');
print_r($data);
// Параметр «email»
echo getUrlQuery('http://site.ru/path?email=mail@site.ru&name=site', 'email');
Результат:
Array(
[email] => mail@site.ru
[name] => site
)
echo 'Вы находитесь на сайте '.$_SERVER['HTTP_HOST'];