OVH Cloud OVH Cloud

extract pour génération de tableaux

2 réponses
Avatar
Christophe PEREZ
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.

--
Christophe PEREZ
Écrivez moi sans _faute !

2 réponses

Avatar
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

voir
http://www.nexen.net/docs/php/annotee/language.variables.external.form.p
hp?lien=_post

Dominique

Avatar
Christophe PEREZ
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 !