@bpGusar
*spoiler*

Как привести URL к нижнему регистру за исключением GETпараметров?

Есть URL
http://www.BlAblA.ru/oLoLolo/?GET=blabla&ANOTHERGET=loOl

Эту часть
BlAblA.ru/oLoLolo
к нижнему регистру, эту часть
?GET=blabla&ANOTHERGET=loOl
не трогать.

Я пробовал сделать так:
$url = strtolower(strtok($_SERVER["REQUEST_URI"],'?'));
$urlQuery = parse_url($_SERVER["REQUEST_URI"], PHP_URL_QUERY);

if ( strtok($_SERVER["REQUEST_URI"],'?') != strtolower(strtok($_SERVER["REQUEST_URI"],'?')) ){
    header ('Location: //' . $_SERVER['HTTP_HOST'] . $url . "?" . $urlQuery );
}


Но что то не так всё. Постоянно добавляется знак ? в конец
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@bpGusar Автор вопроса
*spoiler*
РЕШЕНО
Сделал так
$url = strtolower(strtok($_SERVER["REQUEST_URI"],'?'));
$urlQuery = parse_url($_SERVER["REQUEST_URI"], PHP_URL_QUERY);
$queSign = $urlQuery != "" ? "?" : "";
if ( strtok($_SERVER["REQUEST_URI"],'?') != strtolower(strtok($_SERVER["REQUEST_URI"],'?')) ){
    header ('Location: //' . $_SERVER['HTTP_HOST'] . $url . $queSign . $urlQuery );
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GTRxShock
@GTRxShock
SA
<?php 
$url = 'http://www.BlAblA.ru/oLoLolo/?GET=blabla&ANOTHERGET=loOl';
$urlParts = explode('?', $url);
$url = strtolower($urlParts[0]);
if (isset($urlParts[1])) {
    $url .= '?' . $urlParts[1];
}
var_dump($url);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы