28-06-2010, 12:15 PM
Je masque les commentaires inutiles : vous participez ou non, mais ne polluez pas.
Tous les langages n'ont pas cette fonctionnalité nativement (par exemple en Ruby, la méthode parse de la classe CGI ne convient pas exactement : elle conserve les crochez dans le nom des tableaux indexés, par exemple "brothers[]").
Je parle seulement du passage d'un format sérialisé (en l'occurrence celui d'une query string) en un. Le but n'est pas de cloner la fonction parse_str() de PHP. D'ailleurs, la première forme (sans second argument) ne devrait même pas exister : bonjour les effets de bords que ça peut causer…
Voici ma première implémentation : elle peut renvoyer un nouveau hash ou modifier celui donné en second argument (mais ça ne faisait pas partie de l'énoncé).
Voici la même version en plus symbolique : l'utilisation des variables $1, $2, etc. crées lorsqu'on utilise la méthode match. Ça permet d'être plus concis mais c'est moins lisible, je trouve…
J'ai choisi de bien séparer les différents cas plutôt que d'utiliser une grosse regexp.
Sephi-Chan
Tous les langages n'ont pas cette fonctionnalité nativement (par exemple en Ruby, la méthode parse de la classe CGI ne convient pas exactement : elle conserve les crochez dans le nom des tableaux indexés, par exemple "brothers[]").
Je parle seulement du passage d'un format sérialisé (en l'occurrence celui d'une query string) en un. Le but n'est pas de cloner la fonction parse_str() de PHP. D'ailleurs, la première forme (sans second argument) ne devrait même pas exister : bonjour les effets de bords que ça peut causer…
Voici ma première implémentation : elle peut renvoyer un nouveau hash ou modifier celui donné en second argument (mais ça ne faisait pas partie de l'énoncé).
Voici la même version en plus symbolique : l'utilisation des variables $1, $2, etc. crées lorsqu'on utilise la méthode match. Ça permet d'être plus concis mais c'est moins lisible, je trouve…
J'ai choisi de bien séparer les différents cas plutôt que d'utiliser une grosse regexp.
Sephi-Chan