PHP – Удаление косой черты с хвоста URL-адреса

Код ниже удаляет «www.» И т. Д. С начала веб-сайтов, которые вводятся в базу данных. Он отлично работает.

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

Заранее спасибо,

Джон

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

Solutions Collecting From Web of "PHP – Удаление косой черты с хвоста URL-адреса"

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

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

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

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

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

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

Джон был первым, и я думаю, что его решение должно быть предпочтительным, потому что это более элегантно, но вот еще одно:

 $site = implode("/", array_filter(explode("/", $site))); 

Обновить

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

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

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

Это то что ты хочешь?

 $url = 'http://www.example.com/'; if (substr($url, -1) == '/') $url = substr($url, 0, -1); 
 $result = rtrim( 'example.com/', '/' ); 

Наиболее элегантным решением является использование rtrim () .

 $url = 'http://www.domain.com/'; $urlWithoutTrailingSlash = rtrim($url, '/'); 

РЕДАКТИРОВАТЬ

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

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

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

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

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