У меня есть некоторые URL-адреса, например www.amazon.com/
, www.digg.com
или www.microsoft.com/
, и я хочу удалить конечную косую черту, если она существует, а не только последний символ. Есть ли trim
или rtrim
для этого?
Лучший способ удалить трейлинг-косые черты в URL-адресах с помощью PHP
Ответ 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);