Таким образом, строка тестового примера может быть:
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);