PHP удаляет символы после последнего вхождения символа в строку

Таким образом, строка тестового примера может быть:

http://example.com/?u=ben 

Или

 http://example.com 

Я пытаюсь удалить все после последнего вхождения «/», но только если это не часть «http: //». Это возможно!?

У меня это до сих пор:

 $url = substr($url, 0, strpos( $url, '/')); 

Но не работает, отбрасывает все после первого '/'.

Вы должны использовать инструмент, предназначенный для этого типа работы, parse_url

url.php

 <?php $urls = array('http://example.com/foo?u=ben', 'http://example.com/foo/bar/?u=ben', 'http://example.com/foo/bar/baz?u=ben', 'https://foo.example.com/foo/bar/baz?u=ben', ); function clean_url($url) { $parts = parse_url($url); return $parts['scheme'] . '://' . $parts['host'] . $parts['path']; } foreach ($urls as $url) { echo clean_url($url) . "\n"; } 

Пример:

 ·> php url.php http://example.com/foo http://example.com/foo/bar/ http://example.com/foo/bar/baz https://foo.example.com/foo/bar/baz 

Вы должны использовать функцию strrpos не strpos 😉

 substr($url, 0, strrpos( $url, '/')); 
 $cutoff = explode("char", $string); echo $cutoff[0]; // 2 for what you want and 3 for the index 

также

echo str_replace ("http: //", "", $ str);