所以测试用例字符串可能是:
http://example.com/?u=ben
要么
http://example.com
我想要的“/”最后一次出现后去除一切,但只有当它不是一部分的“http://”。 这可能吗!?
我有这个至今:
$url = substr($url, 0, strpos( $url, '/'));
但不工作,第一个“/”后剥去了一切。
所以测试用例字符串可能是:
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, '/'));
事实上,一个简单的解决方案,你想达到什么是PHP的一些字符串操作功能的发挥。
首先,你需要找到的“/”中最后出现的位置。 您可以通过使用strrpos()函数做到这一点(注意,这是与2 R);
然后,如果你提供这个位置为负值,作为第二个参数来SUBSTR()函数,它将开始搜索从最终的子串。
第二个问题是您要为结果字符串的一部分是在最后的“/”的左侧。 要做到这一点,你必须提供SUBSTR()为负值的第三个参数,这将表明你想有多少个字符删除。
可以肯定的,你需要多少参数删除,你将不得不的“/”右第一提取字符串部分,再算上它的长度。
//so given this url:
$current_url = 'http://example.com/firstslug/84'
//count how long is the part to be removed
$slug_tbr = substr($current_url, strrpos($current_url, '/')); // '/84'
$slug_length = strlen(slug_tbr); // (3)
/*get the final result by giving a negative value
to both second and third parameters of substr() */
$back_url = substr($current_url, -strrpos($current_url, '/'), -$slug_length);
//result will be http://example.com/firstslug/
$cutoff = explode("char", $string);
echo $cutoff[0]; // 2 for what you want and 3 for the index
也
回声str_replace函数( “HTTP://”, “”,$海峡);