我正在尝试获取此url字符串的最后一部分: national/italy/serie-a/20152016/s11663/
我的目标是:s11663这是我的代码:
$path = parse_url("national/italy/serie-a/20152016/s11663/", PHP_URL_PATH);
$pathFragments = explode('/', $path);
$end = end($pathFragments);
var_dump($end);
Run Code Online (Sandbox Code Playgroud)
但我得到:
string(0)""
我做错了什么?
我你$path的字符串/在末尾包含一个,所以,当你爆炸时,最后一个/也被计算,最后一个片段什么都没有,因为在最后一个之后没有任何东西/,所以只需删除它/.
$path = parse_url("national/italy/serie-a/20152016/s11663", PHP_URL_PATH);
$pathFragments = explode('/', $path);
$end = end($pathFragments);
var_dump($end);
Run Code Online (Sandbox Code Playgroud)
或者,如果你不能删除最后一个/,那么只是substr字符串:
$url = "national/italy/serie-a/20152016/s11663/";
$url = substr($url, 0, strlen($url) - 1);
$path = parse_url($url, PHP_URL_PATH);
$pathFragments = explode('/', $path);
$end = end($pathFragments);
var_dump($end);
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你!
更新
在最后一个例子中,它只是substr最后一个char cut,无论是什么char,所以,你能做的就像@ firstone的评论所建议的那样,使用而不是$url = substr($url, 0, strlen($url) - 1);,是:
$url = rtrim($url, "/");
Run Code Online (Sandbox Code Playgroud)
或这个:
if($url[strlen($url) - 1] == "/") {
$url = substr($url, 0, strlen($url) - 1);
} else {
// Let the url be as it is.....
}
Run Code Online (Sandbox Code Playgroud)