我在Zend Framework应用程序中使用以下代码:
控制器:
$paramsOtherAction = $this->getRequest()->getParams();
$paramsOtherAction['action'] = 'otheraction'
$this->view->paramsOtherAction = $paramsOtherAction;
视图:
<a href="<?php echo $this->url($this->paramsOtherAction)?>"> Do other action with same params </a>
这种方法很好,除非参数中有任何需要转义(编码)的字符,比如url。我怎样才能以最佳方式编码这个参数数组?
编辑:
我实际上搜索的是将a参数传递给url函数的可能性,该函数确保我的url参数被编码(为什么不是那样的标准?)。
答案 0 :(得分:2)
使用urlencode功能:
foreach ( $paramsOtherAction as $key => $value )
{
$paramsOtherAction[$key] = urlencode ( $value );
}
答案 1 :(得分:2)
转义参数的一种方法是使用array_map和urlencode:
$paramsOtherAction = array_map('urlencode', $paramsOtherAction);