decomposer une variable

yoounss
Invité n'ayant pas de compte PHPfrance

30 janv. 2014, 17:05

Bonjour à Tous,

je souhaiterai decomposer une chaine de valeurs en plusieurs variables.
Voici ma chaine
$chaine = "VAR1=1234&VAR2=4523&VAR3=4587&VAR4=5321";
le but est d'avoir des variables comme celles ci ici bas :
$var1="1234";
$var2 = "4523";
$var3="4587";
.....
J'ai pensé utilisé la fonction explode() avec & comme separateur mais je ne sais pas si je recois cette chaine toujours dans le meme ordre, et puis les valeurs decomposée pas utilisables pour des tests.
je dois par exemple ensuite faire un test genre if($var2 == "4523"){ ////faire le traitement ; }

Merci à vous pour votre aide, je tourne en rond sur ce probleme qui j'en sur doit exister une fonction ou un mecanisme pour le faire.

Eléphant du PHP | 56 Messages

30 janv. 2014, 17:11

Salut,

Tu peux utiliser explode qui te retournera :
$tab[0] = VAR1=1234
$tab[1] = VAR2=4523
...

Après, tu peux les traiter avec la fonction substr de php http://fr2.php.net/manual/fr/function.substr.php
Après chaque "=" par exemple, tu récupère ce qui suit, ect...

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2014, 18:09

parse_str() répond bien à tes attentes mais attention à son utilisation.
Cette fonction créé des variables dans le scope local (et donc peut écraser des variables déjà définies) si l'on ne précise pas son second paramètre (un array).

Mammouth du PHP | 2278 Messages

30 janv. 2014, 22:28

Une autre solution serait de stocker les variables dans un tableau
$tab = array (
"var1"=>"1234",
"var2" =>"9999",
);
$tab = serialize ($tab);
et à la réception
$tab = $_POST['tab'];
$tab = unserialize ($tab);
et tu as ton tableau de variables quel qu'en soit le nombre avec leur nom et leur valeur
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD