我找不到任何东西,所以我只想拿一个网址,然后拆分它,把它变成关键值对。
$url = 'http://domain.com/var/1/var2/2';
我目前在使用parse_url
后在路径上使用array_chunk$u = parse_url($url);
$decoded = array_chunk($u['path'],2);
但它返回
array (
[0] => array (
[0] => var
[1] => 1
),
[1] => array (
[0] => var2
[1] => 2
)
)
我想要的是
array (
[var] => 1,
[var2] => 2
)
是否有可用于将其解码为数组的Zend Framework方法?
答案 0 :(得分:5)
我会使用请求对象。
$url = 'http://domain.com/var/1/var2/2';
$request = new Zend_Controller_Request_Http($url);
$params = $request->getParams();
// or
$param = $request->getParam('var', $defaultValueNull);
这样做的好处是,您不必使用isset
来检查设置了哪些键。
答案 1 :(得分:0)
$u = parse_url($url);
$decoded = array_chunk($u['path'],2);
$new = array();
for ($decoded as $pair) {
$new[$pair[0]] = $pair[1];
}
print_r($new);
输出
array (
[var] => 1,
[var2] => 2
)
答案 2 :(得分:0)
如果您在控制器中,则只需
$data = $this->_getAllParams();
unset($data['module'], $data['controller'], $data['action']);
$ data现在将
array (
[var] => 1,
[var] => 2
)
希望你也不是POST变量,或者这也包括POST'd变量。