Je cherche un moyen de faire un extract() sur un tableau ($_POST) qui soit
capable de me générer aussi les tableaux contenus.
Je m'explique.
Supposons que j'ai
$_POST["key[0]"] = "valeur1";
$_POST["key[1]"] = "valeur2";
...
Je voudrais qu'un extract($_POST) me donne :
$key[0] = "valeur1"
$key[1] = "valeur2"
...
Je précise que j'ai la maîtrise de la valeur passée dans le $_POST
(l'index pourrait tout aussi bien être "key['1']" si besoin), mais que le
POST n'est pas effectué par un script php.
Bien sûr, je pourrais parser tout le tableau $_POST et créer moi même
les tableaux que je souhaite à l'aide d'une regexp par exemple, mais si
une fonction native me le permettait, je préférerais.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dwojylac.nospam
Christophe PEREZ wrote:
Bonjour,
Je cherche un moyen de faire un extract() sur un tableau ($_POST) qui soit capable de me générer aussi les tableaux contenus.
Je m'explique. Supposons que j'ai $_POST["key[0]"] = "valeur1"; $_POST["key[1]"] = "valeur2"; ... Je voudrais qu'un extract($_POST) me donne : $key[0] = "valeur1" $key[1] = "valeur2" ...
Je précise que j'ai la maîtrise de la valeur passée dans le $_POST (l'index pourrait tout aussi bien être "key['1']" si besoin), mais que le POST n'est pas effectué par un script php.
Bien sûr, je pourrais parser tout le tableau $_POST et créer moi même les tableaux que je souhaite à l'aide d'une regexp par exemple, mais si une fonction native me le permettait, je préférerais.
Merci d'avance pour vos idées.
en fait $_POST['key'] est déja un tableau récupérable comme tel sans passer par $_POST['key[0]'] etc...
depuis php4 on a aussi accés aux tableaux multidimensionnels
Je cherche un moyen de faire un extract() sur un tableau ($_POST) qui soit
capable de me générer aussi les tableaux contenus.
Je m'explique.
Supposons que j'ai
$_POST["key[0]"] = "valeur1";
$_POST["key[1]"] = "valeur2";
...
Je voudrais qu'un extract($_POST) me donne :
$key[0] = "valeur1"
$key[1] = "valeur2"
...
Je précise que j'ai la maîtrise de la valeur passée dans le $_POST
(l'index pourrait tout aussi bien être "key['1']" si besoin), mais que le
POST n'est pas effectué par un script php.
Bien sûr, je pourrais parser tout le tableau $_POST et créer moi même
les tableaux que je souhaite à l'aide d'une regexp par exemple, mais si
une fonction native me le permettait, je préférerais.
Merci d'avance pour vos idées.
en fait $_POST['key'] est déja un tableau récupérable comme tel sans
passer par $_POST['key[0]'] etc...
depuis php4 on a aussi accés aux tableaux multidimensionnels
Je cherche un moyen de faire un extract() sur un tableau ($_POST) qui soit capable de me générer aussi les tableaux contenus.
Je m'explique. Supposons que j'ai $_POST["key[0]"] = "valeur1"; $_POST["key[1]"] = "valeur2"; ... Je voudrais qu'un extract($_POST) me donne : $key[0] = "valeur1" $key[1] = "valeur2" ...
Je précise que j'ai la maîtrise de la valeur passée dans le $_POST (l'index pourrait tout aussi bien être "key['1']" si besoin), mais que le POST n'est pas effectué par un script php.
Bien sûr, je pourrais parser tout le tableau $_POST et créer moi même les tableaux que je souhaite à l'aide d'une regexp par exemple, mais si une fonction native me le permettait, je préférerais.
Merci d'avance pour vos idées.
en fait $_POST['key'] est déja un tableau récupérable comme tel sans passer par $_POST['key[0]'] etc...
depuis php4 on a aussi accés aux tableaux multidimensionnels
Le Mon, 14 Jun 2004 10:52:30 +0000, Dominique Wojylac a écrit:
en fait $_POST['key'] est déja un tableau récupérable comme tel sans passer par $_POST['key[0]'] etc...
J'ai du (encore) mal m'expliquer. Je sais bien que $_POST['key'] est un tableau, seulement, moi, je voulais l'avoir dans $key. Or, à cause d'une erreur sur des noms de variables en double (semble-t'il), je ne parvenais pas à récupérer mes données. J'ai cru, à tort, que extract() ne fonctionnait pas avec des clefs pointant vers des tableaux.
Maintenant, après analyse plus fine de mon POST et corrections, ça fonctionne.
Par contre, tant que j'y suis, j'aimerais bien un conseil ;-)
Il me faut recoder (utf8, entités html etc...) toutes mes données de $_POST. Et je préfère le faire sur le $_POST que d'avoir à le faire sur chacune des variables après le extract().
Je n'ai pas trouvé mieux que de faire par une fonction récursive : function decodeTableau($tabl) { $contientTabl = FALSE; foreach ($tabl as $key => $val) if ( is_array( $val ) ) { $tabl[$key] = decodeTableau($val); $contientTabl = TRUE; } if ( !$contientTabl ) array_walk ( $tabl ,create_function('&$val','$val ma_fonction_de_decodage($val);') ); return $tabl; } $_REQUEST = decodeTableau($_REQUEST);
Quelqu'un voit mieux ?
Merci.
-- Christophe PEREZ Écrivez moi sans _faute !
Le Mon, 14 Jun 2004 10:52:30 +0000, Dominique Wojylac a écrit:
en fait $_POST['key'] est déja un tableau récupérable comme tel sans
passer par $_POST['key[0]'] etc...
J'ai du (encore) mal m'expliquer.
Je sais bien que $_POST['key'] est un tableau, seulement, moi, je voulais
l'avoir dans $key.
Or, à cause d'une erreur sur des noms de variables en double
(semble-t'il), je ne parvenais pas à récupérer mes données.
J'ai cru, à tort, que extract() ne fonctionnait pas avec des clefs
pointant vers des tableaux.
Maintenant, après analyse plus fine de mon POST et corrections, ça
fonctionne.
Par contre, tant que j'y suis, j'aimerais bien un conseil ;-)
Il me faut recoder (utf8, entités html etc...) toutes mes données de
$_POST.
Et je préfère le faire sur le $_POST que d'avoir à le faire sur chacune
des variables après le extract().
Je n'ai pas trouvé mieux que de faire par une fonction récursive :
function decodeTableau($tabl) {
$contientTabl = FALSE;
foreach ($tabl as $key => $val)
if ( is_array( $val ) ) {
$tabl[$key] = decodeTableau($val);
$contientTabl = TRUE;
}
if ( !$contientTabl ) array_walk ( $tabl ,create_function('&$val','$val ma_fonction_de_decodage($val);') ); return $tabl;
}
$_REQUEST = decodeTableau($_REQUEST);
Le Mon, 14 Jun 2004 10:52:30 +0000, Dominique Wojylac a écrit:
en fait $_POST['key'] est déja un tableau récupérable comme tel sans passer par $_POST['key[0]'] etc...
J'ai du (encore) mal m'expliquer. Je sais bien que $_POST['key'] est un tableau, seulement, moi, je voulais l'avoir dans $key. Or, à cause d'une erreur sur des noms de variables en double (semble-t'il), je ne parvenais pas à récupérer mes données. J'ai cru, à tort, que extract() ne fonctionnait pas avec des clefs pointant vers des tableaux.
Maintenant, après analyse plus fine de mon POST et corrections, ça fonctionne.
Par contre, tant que j'y suis, j'aimerais bien un conseil ;-)
Il me faut recoder (utf8, entités html etc...) toutes mes données de $_POST. Et je préfère le faire sur le $_POST que d'avoir à le faire sur chacune des variables après le extract().
Je n'ai pas trouvé mieux que de faire par une fonction récursive : function decodeTableau($tabl) { $contientTabl = FALSE; foreach ($tabl as $key => $val) if ( is_array( $val ) ) { $tabl[$key] = decodeTableau($val); $contientTabl = TRUE; } if ( !$contientTabl ) array_walk ( $tabl ,create_function('&$val','$val ma_fonction_de_decodage($val);') ); return $tabl; } $_REQUEST = decodeTableau($_REQUEST);