Удаление косой черты из конца URL

Приведенный ниже код удаляет "www." И т.д. С начала веб-сайтов, которые вводятся в базу данных. Работает отлично.

Есть ли способ, которым я мог бы использовать подобный код, чтобы удалить косую черту из хвоста веб-сайта, который введен в ту же базу данных?

$remove_array = array('http://www.', 'http://', 'https://', 'https://www.', 'www.');
$site = str_replace($remove_array, "", $_POST['site']);

Ответ 1

$site = preg_replace('{/$}', '', $site);

В этом случае используется относительно простое выражение . $ означает только совпадение косых черт в конце строки, поэтому он не удаляет первую косую черту в stackoverflow.com/questions/. Кудрявые фигурные скобки {} являются просто разделителями; PHP требует совпадения символов и передних и задних регулярных выражений по какой-то глупой причине.

Ответ 2

Вы можете передать строку символов, которую вы хотите удалить из строки, в семейство функций trim. Кроме того, вы можете использовать rtrim для обрезки только конца строки:

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

Ответ 3

Самый простой способ:

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

Ответ 4

Джон был первым, и я думаю, что его решение должно быть предпочтительным, потому что оно более элегантно, однако вот еще одно:
$site = implode("/", array_filter(explode("/", $site)));

Обновление

спасибо. Я обновил его и теперь даже обрабатывает такие вещи

$site = "///test///test//"; /* to => test/test */

Что, вероятно, делает его еще более холодным, чем принятый ответ;)

Ответ 5

Это то, что вы хотите?

$url = 'http://www.example.com/';

if (substr($url, -1) == '/')
    $url = substr($url, 0, -1);

Ответ 6

$result = rtrim( 'example.com/', '/' );

Ответ 7

Самое элегантное решение - использовать rtrim().

$url = 'http://www.domain.com/';

$urlWithoutTrailingSlash = rtrim($url, '/');

ИЗМЕНИТЬ

Я забыл про rtrim();

Вы также можете играть parse_url().

Ответ 8

$new_string = preg_replace('|/$|', '', $string);

Ответ 9

Возможно, лучшим решением будет использование .htaccess, но php также может сделать это примерно так:

<?php
    header('location: '.preg_replace("/\/$/","",$_SERVER['REQUEST_URI']));
?>