Как удалить строку запроса и получить только URL? - PullRequest
179 голосов
/ 07 августа 2011

Я использую PHP для создания URL текущей страницы.Иногда запрашиваются URL в виде

www.mydomian.com/myurl.html?unwantedthngs

.Я хочу удалить ? и все, что за ним следует (строка запроса), так что получающийся URL становится:

www.mydomain.com/myurl.html

Мой текущий код:

Ответы [ 14 ]

0 голосов
/ 25 мая 2019

Вы можете использовать встроенную функцию parse_url следующим образом:

$baseUrl = $_SERVER['SERVER_NAME'] . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
0 голосов
/ 04 апреля 2019

может также использовать следующее согласно php комментарию

$_SERVER['REDIRECT_URL']

Обратите внимание, что это работает только для определенной среды PHP, и следуйте приведенным ниже комментариям на этой странице для получения дополнительной информации;

Назначение: URL-путь к текущему файлу PHP, path-info - N / A и исключая строку запроса URL. Включает ведущий слеш.

Предостережение: это перед перезаписью URL (то есть в соответствии с оригиналом URL звонка).

Предупреждение: не установлен во всех средах PHP, и определенно только в тех, URL переписывается.

Работает в веб-режиме: Да

Работает в режиме CLI: Нет

0 голосов
/ 23 января 2016

Попробуйте это:

$urrl=$_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']

или

$urrl=$_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']
0 голосов
/ 14 июля 2014

Попробуйте это

$url_with_querystring = 'www.mydomian.com/myurl.html?unwantedthngs';
$url_data = parse_url($url_with_querystring);
$url_without_querystring = str_replace('?'.$url_data['query'], '', $url_with_querystring);
...