由于您在末尾加了一个斜杠
/
,因此您需要获取倒数第二个:
$path = parse_url("national/italy/serie-a/20152016/s11663/", PHP_URL_PATH);
$pathFragments = explode('/', $path);
array_pop($pathFragments); // remove last (empty value)
$end = end($pathFragments);
var_dump($end);
请看您问题中
$pathFragments
的输出结果:
Array
(
[0] => national
[1] => italy
[2] => serie-a
[3] => 20152016
[4] => s11663
[5] =>
)
这段代码适用于以and结尾且没有/
的字符串:
$path = parse_url("national/italy/serie-a/20152016/s11663", PHP_URL_PATH);
$pathFragmenst = (substr($path, -1) == '/') ?
$pathFragments = explode('/', $path, -1) :
$pathFragments = explode('/', $path);
$end = end($pathFragments);
var_dump($end);
../s11663/
的输出结果为:https://3v4l.org/BWjkd
字符串(6) "s11663"
../s11663
的输出结果为:https://3v4l.org/H7fP9
字符串(6) "s11663"
说明:
1 - 这段代码:
$pathFragmenst = (substr($path, -1) == '/') ?
$pathFragments = explode('/', $path, -1) :
$pathFragments = explode('/', $path);
缩写意思是:
if(substr($path, -1) == '/'){
$pathFragments = explode('/', $path, -1);
}else{
$pathFragments = explode('/', $path);
}
2 - 我不确定那个字符串是否是url_parse
的结果,或者你真的在尝试解析它,但是
var_dump(parse_url("national/italy/serie-a/20152016/s11663", PHP_URL_PATH))
将输出
string(38) "national/italy/serie-a/20152016/s11663"
所以没有必要parse_url
它 - 除非你正在尝试解析类似以下的内容:
http://example.com/national/italy/serie-a/20152016/s11663/
^^^^^^^^^^^^^^^^^^^
我保留了它,以防您将使用完整的url...
警告:substr()希望参数3为long,但给出的是字符串
。相反,第一个很好用。谢谢。 - Sevengames Xoom(substr($path, -1, 1))
,然后告诉我... - FirstOne