Php 拆分url的路径部分
我找不到任何东西,所以我只想获取一个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 = '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]代码>