带冒号和数字的parse_url()

时间:2015-02-04 04:01:33

标签: php

由于我无法访问mod重写,因此我使用它来解析我的网址。

$path = explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

因此,当我的网址为/page/action/1时,它的效果非常好。我明白了:

[0] => [1] => page [2] => action [3] => 1

然而,当我有类似:/page/action/simple:1之类的东西时,它会中断。它什么都不返回。

有谁知道为什么会发生这种情况我可以做些什么来解决它?

2 个答案:

答案 0 :(得分:0)

所以有人发布了urlencode(),但后来删除了他们的答案。我玩弄它并发现了这个解决方案。它不是最好的,但它对我有用。

如果他们有更好的选择,我仍然有兴趣听取任何人的意见。但这是我改变的。

$path = explode(urlencode("/"), parse_url(urlencode($_SERVER['REQUEST_URI']), PHP_URL_PATH));
foreach($path as &$item) $item = urldecode($item);

答案 1 :(得分:0)

尝试这样的事情......

$url = $_SERVER['REQUEST_URI'];
$path = explode("/", $url);
var_dump($path);

如果$url = /page/action/simple:1 输出应为[0] => [1] => page [2] => action [3] => simple:1