Extract() et POST...

Eléphant du PHP | 50 Messages

27 janv. 2009, 23:15

Bonsoir,
Tout d'abord j'aimerai savoir par curiosité si extract() marche avec tous les tableaux comme par exemple après un mysql_fetch_array.

J'aimerai ensuite savoir comment faire pour ajouter une chaine quelconque : par exemple :

Soit : $_POST['titre'], $_POST['texte'], $_POST['coms']

extract($_POST); me donne $titre, $texte et $coms

Comment obtenir $post-titre, $post-texte, $post-coms à la place ? En clair comment modifier mon tableau initial $_POST ?

Merci d'avance !

+ :D

Et au passage, merci pour toutes les fois ou vous m'avez aidé efficacement; C'est rare sur les forums d'avoir des bonnes réponses rapides bien que sur PHPFrance ce soit toujours ! :D

Eléphant du PHP | 139 Messages

27 janv. 2009, 23:53

Comment obtenir $post-titre, $post-texte, $post-coms à la place ? En clair comment modifier mon tableau initial $_POST ?
Je n'ai pas vraiment compris...

Eléphant du PHP | 50 Messages

28 janv. 2009, 15:15

En clair j'aimerai transformer le tableau :

$_POST['titre'], $_POST['texte'], $_POST['coms']

en :

$_POST['post-titre'], $_POST['post-texte'], $_POST['post-coms']

Pour obtenir après un extract() : $post-titre, $post-texte, $post-coms

Ok ?

++

ViPHP
ViPHP | 4039 Messages

28 janv. 2009, 15:20

En lisant bien toute la documentation de la fonction extract() , je crois qu'elle fait exactement ce que tu as envie de faire.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 50 Messages

28 janv. 2009, 16:25

Désolé mais je ne vois pas ou ne comprend pas ou ça ?

+

ViPHP
ViPHP | 1996 Messages

28 janv. 2009, 16:44

En clair j'aimerai transformer le tableau :

$_POST['titre'], $_POST['texte'], $_POST['coms']

en :

$_POST['post-titre'], $_POST['post-texte'], $_POST['post-coms']

Pour obtenir après un extract() : $post-titre, $post-texte, $post-coms

Ok ?

++
Esaye cela
<?php

extract($_POST, EXTR_PREFIX_ALL, "post-");
?>
J'ai trouvé cela ici http://fr.php.net/manual/fr/function.extract.php
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 4039 Messages

28 janv. 2009, 16:59

Aureusms à lu la doc, lui... :roll:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 1996 Messages

28 janv. 2009, 17:03

Aureusms à lu la doc, lui... :roll:
LOL
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 50 Messages

28 janv. 2009, 18:07

Hahaha !
Je l'ai également lu seulement je ne comprenais pas quelque chose :
<?php

/* Supposons que $var_array est un tableau retourné par
   wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

?>
Pourquoi $color affiche quelque chose ? n'est ce pas plutot $wddx_color qui affiche ? et pourquoi y a t il un _ entre wddx et la variable ? Si je met "post-" n'obtiendrais-je pas plutôt $post-_color ?


Alors voila je n'ai pas compris et non pas lu ! :)

+

ViPHP
ViPHP | 4039 Messages

28 janv. 2009, 23:47

et pourquoi y a t il un _ entre wddx et la variable ? Si je met "post-" n'obtiendrais-je pas plutôt $post-_color ?
Sacro-saint manuel, tu représente tout pour moi..
Les préfixes sont automatiquement séparés de l'index du tableau par un caractère de soulignement
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 1996 Messages

29 janv. 2009, 20:31

Moi pour ma part, je n'avais pas lu jusqu'au bout (méhacoolpas : je préfère cette écriture LOL)

Pour ton problème, il est préférable de remplacer le - par le _ qui sera obligatoire, aussi :
<?php
extract($_POST, EXTR_PREFIX_ALL, "post");
?>
si tu veux vraiment garder ton "-", essaye cela :
<?php

foreach ($_POST as $cle => $valeur)
{
$cle = "post-".$cle;
$tab_post[$cle] = $valeur;
}

extract($tab_post);
?>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr