0

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?).

Peter Smit
  • 27,696
  • 33
  • 111
  • 170
  • Why don't you modify the url method to do the escaping? – Jan Hančič Jan 18 '10 at 23:18
  • The url helper, is part of the Zend_View. I can of course make a new helper (extending the old one), but this is such a common use case that I would expect that Zend can do this already. – Peter Smit Jan 19 '10 at 06:31

2 Answers2

2

Use the urlencode function:

foreach ( $paramsOtherAction as $key => $value )
{
    $paramsOtherAction[$key] = urlencode ( $value );
}
Jan Hančič
  • 53,269
  • 16
  • 95
  • 99
2

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

$paramsOtherAction = array_map('urlencode', $paramsOtherAction);
Peter Smit
  • 27,696
  • 33
  • 111
  • 170