mardi 2 juin 2009
Aujourd'hui, je vais partager avec vous un truc PHP qui résoud un problème de façon élégante. Je serai bref dans mon explication puisque l'exemple que je m'apprête à vous montrer parle de lui-même.
Êtes-vous du genre à créer des liens en concaténant la query string comme ceci?
$lng = 'fr';Si oui, changez vos habitudes pour adopter dès maintenant une méthode plus claire : la fonction PHP http_build_query().
$page = 5;
$recent = 'true';
echo 'page.php?lng=' . $lng . '&page=' . $page . '&recent=' . $recent;
// ou encore
echo "page.php?lng=$lng&page=$page&recent=$recent";
$params = array(Dans tous les cas, la chaîne résultante sera :
'lng' => $lng,
'page' => $page,
'recent' => $recent
);
echo 'page.php?' . http_build_query($params, '', '&');
page.php?lng=fr&page=5&recent=true
Intéressant non ? Ces dernières années, je ne me souviens pas avoir rencontré cette fonction dans les projets sur lesquels je travaille. Pourtant, elle offre beaucoup de flexibilité en plus de rendre le code lisible. Et moi-même, je ne la connaissais même pas il y a quelques semaines!
Défi à relever
Dans le même ordre d'idées, je vous lance un défi que j'essaie moi-même de relever : peu importe le langage de programmation que vous utilisez, explorez la documentation et essayez de découvrir une nouvelle fonctionnalité par jour. L'idée n'est pas de tout comprendre à fond mais juste de savoir que ça existe. C'est étonnant à quel point on peut assimiler des nouvelles connaissances en si peu de temps.
Génial, merci beaucoup ! Pile poil la fonction que je m'apprêtais à (ré)inventer !
super.
C'est ce que je voulais :
je redirige vers un site en ayant récupéré les paramètres (avant php5, je mettais QUERY_STRING)
header("Location:http://www.monsite.fr/index.php?".http_build_query($_REQUEST, '', '&'));
cordialement
www.lespassions.fr