views:

173

answers:

2

I use the following code with my Zend Framework application:

controller:

$paramsOtherAction = $this->getRequest()->getParams();
$paramsOtherAction['action'] = 'otheraction'
$this->view->paramsOtherAction = $paramsOtherAction;

view:

<a href="<?php echo $this->url($this->paramsOtherAction)?>"> Do other action with same params </a>

This works fine, except when there are any characters in the parameters that need to be escaped (encoded), like url's. How can I in the best way encode this array of parameters?

Edit:

What I am searching actually is the possibility to pass the a parameter to the url function that makes sure that my url-parameters are encoded (why isn't that done standard anyway?).

+2  A: 

Use the urlencode function:

foreach ( $paramsOtherAction as $key => $value )
{
    $paramsOtherAction[$key] = urlencode ( $value );
}
Jan Hančič
I guess an array_map('urlencode',$array) would even be better... Maybe I add this as an answer myself
Peter Smit
+1  A: 

One way of escaping the parameters is to use array_map and urlencode:

$paramsOtherAction = array_map('urlencode', $paramsOtherAction);
Peter Smit