如果网址是这样的$url=artists/denaro/
,我就走了explode("/",$url)
。它留下一个字符,它是一个空格还是我试图匹配和删除它的东西
$lastelement = end($named_request_data);
if($lastelement == " ")
{
unset($lastelement);
reset($named_request_data);
return $named_request_data;
}
请改用 array_filter()。它将删除空项目。
$string = "artists/denaro/";
$array = array_filter(explode('/', $string));
$array 现在将只包含 'artists' 和 'denaro'。
输出:
array (size=2)
0 => string 'artists' (length=7)
1 => string 'denaro' (length=6)
它在数组的最终索引处留下一个空字符串。
你应该做
$url = "artists/denaro/";
$url = trim($url, "/");
$arrayUrl = explode("/", $url);
$url='artists/denaro/';
$exp = explode("/",$url);
var_dump($exp); //1
$exp = array_filter($exp);
var_dump($exp);//2
输出是:
array(3) { [0]=> string(7) "artists" [1]=> string(6) "denaro" [2]=> string(0) "" } //1
array(2) { [0]=> string(7) "artists" [1]=> string(6) "denaro" } //2
http://php.net/manual/en/function.array-filter.php “如果没有提供回调,所有等于 FALSE 的输入条目(请参阅转换为布尔值)都将被删除。”
您可以使用 substr 首先删除最后一个字符。
PHP 小提琴: http: //phpfiddle.org/main/code/bfi-yr6
您的原始代码:
$url='artists/denaro/';
$parts = explode("/",$url);
var_dump($parts);
输出:
array(3) { [0]=> string(7) "artists" [1]=> string(6) "denaro" [2]=> string(0) "" }
使用 substr:
$url2 = substr($url, 0, -1);
$parts2 = explode("/",$url2);
var_dump($parts2);
输出:
array(2) { [0]=> string(7) "artists" [1]=> string(6) "denaro" }