Ajouter un paramètre à l’URL courante en PHP

Il est parfois nécessaire d’ajouter un paramètre à l’URL courante en PHP, sans se préoccuper des potentiels paramètres existants, et surtout sans vouloir les supprimer. Pour cela, la fonction suivante fusionne les paramètres existants avec un tableau associatif de ceux à ajouter.

Cela peut être particulièrement utile pour la création d’une pagination, lorsque les éléments affichés sont issus d’une recherche.

function addUrlParam($params=array()){
	$p = array_merge($_GET, $params);
	$qs = http_build_query($p);
	return basename($_SERVER['PHP_SELF']).'?'.$qs;
}

 

Exemples d’utilisation

Ajout d’un paramètre :

// URL actuelle : http://www.monsite.com?search=test
echo addUrlParam(array('page'=>2)); 
// http://www.monsite.com?search=test&page=2

Remplacement d’un paramètre :

// URL actuelle : http://www.monsite.com?search=test&page=2
echo addUrlParam(array('page'=>3)); 
// http://www.monsite.com?search=test&page=3

Ajout et remplacement de plusieurs paramètres :

// URL actuelle : http://www.monsite.com?search=test&page=3
echo addUrlParam(array('page'=>4, 'order'=>'price')); 
// http://www.monsite.com?search=test&page=4&order=price