php - url split up产生一个空的0索引

时间:2016-09-19 18:08:49

标签: php url explode

所以我正在创建一个php应用程序,目前正在检查网址。

我正在运行php中的构建开发服务器,公共目录作为根

php -S localhost:8080 -t public/

当我爆炸网址时,我会这样做

$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', rtrim($url, '/'));

但是,例如,如果在网址中输入:

localhost:8080/index/test

$ segment的内容如下:

echo $segments[0]; // empty,
echo $segments[1]; // index
echo $segments[2]; // test

为什么第一个索引总是在那里,并且为空?

unset($segments[0]);

解决了这个问题,但我想知道它为什么会出现问题。

1 个答案:

答案 0 :(得分:1)

如果您的网址以/开头,那么爆炸该字符会在开头创建一个空项目(第一个分隔符之前没有任何内容)。在这种情况下,由于您已经使用/在最后修剪rtrim(),这将是一个简单的修复:使用trim()代替修剪双方:

$segments = explode('/', trim($url, '/'));