Hola!
Ça fait un moment que j'utilise cette fonction, je l'utilise même tout le temps, ça sert a rajouter des paramètres à une url, si l'url les a déjà, ça les remplaces par les nouveaux:
C'est vraiment très pratique, c'est pour ça que je l’utilise dans tout les projet, et que, petit à petit, elle s'affine, voilà la dernière version:
Je me disais qu'elle pouvait peut être servir à d'autre et que vous auriez surement des commentaires éclairés pour encore l'améliorer
Modifié par matmat (11 May 2010 - 03:20)

Ça fait un moment que j'utilise cette fonction, je l'utilise même tout le temps, ça sert a rajouter des paramètres à une url, si l'url les a déjà, ça les remplaces par les nouveaux:
echo url_param('/do_something.php?var1=1&var2=1','var1=2&var2=2&var3=2')
///do_something.php?var1=2&var2=2&var3=2
C'est vraiment très pratique, c'est pour ça que je l’utilise dans tout les projet, et que, petit à petit, elle s'affine, voilà la dernière version:
url_param($url,$param)
{
$param = str_replace( '&', '&',$param);
$status = preg_match('~^([^?#]*)(\?([^#]*))?(#(.*))?~',$url,$matches);
$url = (isset($matches[1]))? $matches[1] : '';
if(isset($matches[3])){
parse_str($matches[3],$vars);
$url = $url.'?';
foreach($vars as $var=>$value){
if(is_array($value)){
foreach($value as $i=>$v){
if(!preg_match('~(^'.$var.'\[\]|&'.$var.'\[\])='.$v.'~',$param)) $url .= $var.'[]='.$v.'&';
}
}else{
if(!preg_match('~(^'.$var.'|&'.$var.')=~',$param)) $url .= $var.'='.$value.'&';
}
}
$url .= $param;
}else{
$url = $url.'?'.$param;
}
if(isset($matches[4])) $url .= $matches[4];
return $url;
}
Je me disais qu'elle pouvait peut être servir à d'autre et que vous auriez surement des commentaires éclairés pour encore l'améliorer

Modifié par matmat (11 May 2010 - 03:20)