vendredi 22 juillet 2005

change_url_args($var_, $val_, $url_ = null)

/**
* change_url_args()
* Permet de changer un paramètre d'URL en donnant son nom, et sa nouvelle valeur
* si l'argument est introuvable, on le rajoute
* vive les expressions régulières !
* @update 30/06/2004
* @param string $var_ chaine qui contient le nom de la variable en URL
* @param string $val_ chaine qui contient la valeur à assigner à cette variable
* @param string $url_ travailler à partir de cette chaine, ou sinon, on prend l'URL actuelle par defaut
* @return string
**/
function change_url_args($var_, $val_, $url_ = null) {
global $HTTP_SERVER_VARS;
// si url n'est pas fourni, on le prends depuis l'url courante
if ($url_ == null) $url_ = $HTTP_SERVER_VARS['REQUEST_URI'];
// on vérifie si on a deja un tel argument en URL, sinon, on le rajoute bêtement
// pas d'argument trouvé ?
if (!ereg("$var_=", $url_)) {
// on va ajouter un argument, est-ce le premier ?
if (!ereg("\?", $url_)) $url_ .= "?$var_=$val_";
else $url_ .= "&$var_=$val_";
} else {
$url_ = preg_replace("/($var_)=([\w\déèàêëâäçîïöôüûù_-]*)/", "$1=$val_", $url_);
}
// retourne la nouvelle url, avec les params changés
return $url_;
}

Aucun commentaire:

Enregistrer un commentaire