Php 拆分url的路径部分

Php 拆分url的路径部分,php,zend-framework,Php,Zend Framework,我找不到任何东西,所以我只想获取一个url,然后将其拆分并将其转换为键值对 $url = 'http://domain.com/var/1/var2/2'; 在使用解析url之后,我当前正在路径上使用数组块 $u = parse_url($url); $decoded = array_chunk($u['path'],2); 但它又回来了 array ( [0] => array ( [0] => var [1] => 1 ),

我找不到任何东西,所以我只想获取一个url,然后将其拆分并将其转换为键值对

$url = 'http://domain.com/var/1/var2/2';
在使用解析url之后,我当前正在路径上使用数组块

$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方法可用于将其解码为数组

$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
)
输出

array (
    [var] => 1,
    [var2] => 2
)

我会使用请求对象

$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检查设置了哪些键。

我会使用request对象

$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来检查设置了哪些键。

如果您在控制器中,则只需

$data = $this->_getAllParams();
unset($data['module'], $data['controller'], $data['action']);
$data现在将被删除

array (
    [var] => 1,
    [var] => 2
)

希望您也没有发布变量,否则这也会包括发布的变量。

如果您在控制器中,那么它只是

$data = $this->_getAllParams();
unset($data['module'], $data['controller'], $data['action']);
$data现在将被删除

array (
    [var] => 1,
    [var] => 2
)

希望您没有发布变量,否则这也将包括发布的变量。

可能是@akond yes的副本,您是正确的#获胜!是的,我使用了$route=Zend_Controller_Front::getInstance()->getRouter()->getCurrentRoute()$参数=$route->match($url);可能是@akond的副本是的,你是对的#获胜!是的,我使用了$route=Zend_Controller_Front::getInstance()->getRouter()->getCurrentRoute()$参数=$route->match($url);我想你的意思是
$new[$pair[0]]=$pair[1]我想你的意思是
$new[$pair[0]]=$pair[1]