Подтвердить что ты не робот

Лучший способ удалить трейлинг-косые черты в URL-адресах с помощью PHP

У меня есть некоторые URL-адреса, например www.amazon.com/, www.digg.com или www.microsoft.com/, и я хочу удалить конечную косую черту, если она существует, а не только последний символ. Есть ли trim или rtrim для этого?

4b9b3361

Ответ 1

Вы положили rtrim в свой ответ, почему бы просто не посмотреть его?

$url = rtrim($url,"/");

В качестве дополнительной заметки найдите любую функцию PHP, выполнив следующие действия:

(rtrim означает "Правая отделка" )

Ответ 2

Простой и работает как с Windows, так и с Unix:

$url = rtrim($url, '/\\')

Ответ 3

Я пришел сюда, чтобы найти способ удалить конечную косую черту и перенаправить браузер, я придумал ответ, который хотел бы поделиться для всех, кто идет за мной:

//remove trailing slash from uri
if( ($_SERVER['REQUEST_URI'] != "/") and preg_match('{/$}',$_SERVER['REQUEST_URI']) ) {
    header ('Location: '.preg_replace('{/$}', '', $_SERVER['REQUEST_URI']));
    exit();
}

($_SERVER['REQUEST_URI'] != "/") будет избегать URI хоста, например www.amazon.com/, потому что веб-браузеры всегда отправляют конечную косую черту после имени домена, а preg_match('{/$}',$_SERVER['REQUEST_URI']) будет сопоставить все остальные URI с завершающим косой чертой как последний символ. Затем preg_replace('{/$}', '', $_SERVER['REQUEST_URI']) удалит косую черту и передаст ее в header() для перенаправления. Функция exit() важна для прекращения дальнейшего выполнения кода.

Ответ 4

$urls="www.amazon.com/ www.digg.com/ www.microsoft.com/";
echo preg_replace("/\b\//","",$urls);