Recuperer les variables utilisateur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 288 fois - Téléchargée 33 fois

Contenu du snippet

récupère les variables utilisateurs initialisées à l'exclusion des globales et
des super-globales, les tableaux et variables sont directement exploitable en php

Source / Exemple :


<?php
 $b=get_defined_vars();$tab=array();
 $a=array_flip(array('_SESSION','HTTP_SESSION_VARS','_REQUEST',
 '_FILES','HTTP_POST_FILES','_ENV','HTTP_ENV_VARS',
 '_SERVER','HTTP_SERVER_VARS','_COOKIE',
 'HTTP_COOKIE_VARS','_GET','HTTP_GET_VARS',
 '_POST','HTTP_POST_VARS','GLOBALS')
 );echo'<pre>';
 foreach($b as $k=>$v){
     if(!array_key_exists($k,$a)){$i=var_export($b[$k],1);     
/*Corecction d'un bug d'affichage de virgule en fin de tableau (marche jusqu'à tableau à 4 niveau de tableau imbriqués
mais peu fausser les valeurs si elles contiennent des sauts de ligne suivi de parenthèse
Dans ce cas utiliser plutôt $i=htmlspecialchars($i); il y aura les virgules mais les valeurs seront ok.*/
$i=htmlspecialchars(str_replace(array(",\n      )",",\n    )",",\n  )",",\n)"),array("\n      )","\n    )","\n  )","\n)"),$i));
		 if(is_array($v)){echo '$',$k,'=',$i,';<br />';}/* affiche les tableaux */
         else{$tab[$k]=$i;}/* stocke les variables*/
     }
 }
foreach($tab as $k=>$v){echo '$'.$k.' = '.$v.';<br />';}/* affiche les variables */
echo'</pre>';
//********************************************************************************************************
// Variante en fonction
function vars(){$tab=array();$b=$GLOBALS;
 $a=array_flip(array('_SESSION','HTTP_SESSION_VARS','_REQUEST',
 '_FILES','HTTP_POST_FILES','_ENV','HTTP_ENV_VARS',
 '_SERVER','HTTP_SERVER_VARS','_COOKIE',
 'HTTP_COOKIE_VARS','_GET','HTTP_GET_VARS',
 '_POST','HTTP_POST_VARS','GLOBALS')
 );echo'<pre>';
 foreach($b as $k=>$v){
     if(!array_key_exists($k,$a)){$i=var_export($b[$k],1);     
/*Corecction d'un bug d'affichage de virgule en fin de tableau (marche jusqu'à tableau à 4 niveau de tableau imbriqués
mais peu fausser les valeurs si elles contiennent des sauts de ligne suivi de parenthèse
Dans ce cas utiliser plutôt $i=htmlspecialchars($i); il y aura les virgules mais les valeurs seront ok.*/
$i=htmlspecialchars(str_replace(array(",\n      )",",\n    )",",\n  )",",\n)"),array("\n      )","\n    )","\n  )","\n)"),$i));
		 if(is_array($v)){echo '$',$k,'=',$i,';<br />';}/* affiche les tableaux */
         else{$tab[$k]=$i;}/* stocke les variables*/
     }
 }
foreach($tab as $k=>$v){echo '$'.$k.' = '.$v.';<br />';}/* affiche les variables */
echo'</pre>';
}
vars();
?>

Conclusion :


get_defined_vars() retourne un tableau de toutes les variables définies
sauf les globales pour certaines versions de php,
c'est ensuite filtré par !array_key_exists() pour exclure les super
globales...testé sur PHP>= 4.3

A voir également

Ajouter un commentaire

Commentaire

cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

<? est à remplacer par <?php et
par


a +

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.