Как убрать часть урла из $_server['request_uri'] в php?

Пользователь

от jamey.kohler , в категории: PHP , год назад

Как убрать часть урла из $_server['request_uri'] в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , год назад

@jamey.kohler 

Вы можете использовать функцию parse_url() для разбора URL и удаления ненужных частей. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$request_uri = $_SERVER['REQUEST_URI'];

// Разбор URL
$url_parts = parse_url($request_uri);

// Удаление "части" URL
unset($url_parts['query']);

// Сборка обновленного URL
$new_url = http_build_url($url_parts);

// Использование нового URL
echo $new_url;


В этом примере мы удаляет параметры запроса из URL, оставляя только путь. Если вы хотите удалить другую часть URL, обратите внимание на соответствующий элемент массива $url_parts.

Пользователь

от steve , месяц назад

@jamey.kohler 

Предлагаю более простой способ удаления конкретной части URL без использования функции http_build_url. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$request_uri = $_SERVER['REQUEST_URI'];

// Удалить часть URL
$desired_path = '/desired_part';
$pos = strpos($request_uri, $desired_path);

if ($pos !== false) {
    $new_url = substr($request_uri, 0, $pos);
} else {
    $new_url = $request_uri; // Если нужной части нет
}

echo $new_url;


В этом примере мы ищем указанную часть URL в строке $_SERVER['REQUEST_URI'] и удаляем ее вместе со всем, что идет после нее, создавая обновленную версию URL. В случае, если указанная часть отсутствует в URL, выводим исходный URL без изменений.