2010-01-18 3 views
0

J'utilise le code suivant avec mon application Zend Framework:Comment réencoder paramètres d'URL avec Zend Framework

contrôleur

:

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

Vue:

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

Cela fonctionne bien, sauf si il y a des caractères dans les paramètres qui doivent être échappés (codés), comme url. Comment puis-je encoder au mieux ce tableau de paramètres?

Edit:

Ce que je suis à la recherche est en fait la possibilité de passer le paramètre à la fonction URL qui fait en sorte que mes url-paramètres sont codés (pourquoi est pas fait la norme de toute façon?) .

+0

Pourquoi vous modifiez pas la méthode d'URL pour faire la fuite? –

+0

L'assistant url fait partie de Zend_View. Je peux bien sûr faire une nouvelle aide (en prolongeant l'ancienne), mais c'est un cas d'utilisation si courant que je m'attendrais à ce que Zend puisse déjà le faire. –

Répondre

2

Une façon d'échapper aux paramètres est d'utiliser array_map et urlencode:

$paramsOtherAction = array_map('urlencode', $paramsOtherAction); 
2

Utilisez la fonction urlencode:

foreach ($paramsOtherAction as $key => $value) 
{ 
    $paramsOtherAction[$key] = urlencode ($value); 
} 
+0

Je suppose qu'un array_map ('urlencode', $ array) serait encore mieux ... Peut-être que j'ajoute ceci comme une réponse moi-même –