[Résolu] Variables de Variables ...

Variables de Variables ... [Résolu] - PHP - Programmation

Marsh Posté le 28-04-2008 à 09:21:52    

Bonjour,
 
Cela fait un moment que je bloque sur un probleme ...  
il s'agit d'un script php orienté réseau. je dispose de plusieurs array contenant les adresse ip correspondant au port des routeurs.
 

Code :
  1. $ip_new_switch = $switch_name_id[$result_port] ;


 
ici je veux recherché dans l'array atant pour nom la variable swtich_name_id qui est le résultat d'une fonction précédente mais cette ligne agit comme si je cherche l'array "switch_name_id"...
 
comment faire pour qu'il prenne en compte le fait que c'est une variable ?
 
merci


Message édité par elmarokinho le 28-04-2008 à 10:20:09
Reply

Marsh Posté le 28-04-2008 à 09:21:52   

Reply

Marsh Posté le 28-04-2008 à 09:31:36    

Reply

Marsh Posté le 28-04-2008 à 09:34:08    

Moi non plus, je vois pas d'erreur dans ta ligne, si il y a un problème c'est surement dans ta fonction.

Reply

Marsh Posté le 28-04-2008 à 09:35:44    

combien on parie qu'il veut utiliser ${$switch_name_id} et qu'il mérite des coups de pelle à clous?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 09:38:17    

j'opterais pour la version avec les pelles a clous ^^  
 
beh jpouvais pas deviné !  :pt1cable:  
 
ata je teste


Message édité par elmarokinho le 28-04-2008 à 09:38:33
Reply

Marsh Posté le 28-04-2008 à 09:39:31    

Quand on a besoin de faire ça, ça veut dire dans 99,99999% des cas qu'on aurait dû faire un tableau quelque part!


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 09:42:34    

j'ai un tableau... mais c'est pour y faire appel que j'ai un probleme

Message cité 1 fois
Message édité par elmarokinho le 28-04-2008 à 09:42:57
Reply

Marsh Posté le 28-04-2008 à 09:43:09    

elmarokinho a écrit :

j'ai un tableau... mais pour c'est pour y faire appel que j'ai un probleme


Il te faudrait peut-être un tableau de tableau...;)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 09:46:48    

Si ta "fonction précédente" renvoie la chaîne de caractère "switch_name_id", il serait effectivement plus judicieux d'utiliser un tableau à deux dimensions, et d'accéder à ton truc par $info[$resultat_de_ta_fonction][$result_port];
 
M'enfin faudrait voir un peu + de ton code. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 28-04-2008 à 09:54:23    

sielfried a écrit :


M'enfin faudrait voir un peu + de ton code. :spamafote:


392 lignes ... c cho  :whistle:

 
Code :
  1. // Fonction permmettant d'extraire l'ID du routeur ( Switch-Cisco-000123 : _123 )
  2. $orig = explode('-', $switch_name);
  3. $dest = array_slice($orig, -1);
  4. $name_result = join('-', $dest);
  5. $switch_name_id = str_replace('"','', $name_result);
  6. $switch_name_id = "_".$switch_name_id ;
  7. echo $switch_name_id ;
  8. //-------------
  9. //plus loin ---
  10. //------------
  11.   $ip_new_switch = ${$switch_name_id}[$result_port] ;
  12.     $url = "stage2.php?ip_machine=" . $ip_machine . "&ip_switch=" . $ip_new_switch;
 

Array en question :

 
Code :
  1. $_123 = array (
  2. 'Gi0/1' => '192.126.60.198',
  3. 'Gi0/2' => '192.126.60.195'
  4. ) ;
  

merci de votre aide

Message cité 1 fois
Message édité par elmarokinho le 28-04-2008 à 09:59:27
Reply

Marsh Posté le 28-04-2008 à 09:54:23   

Reply

Marsh Posté le 28-04-2008 à 09:55:36    

voici comment je fais des noms de variables dynamiques
${"champ".$num_corres}
 
apres je comprend pas exactement ce que tu veut
explique mieux

Reply

Marsh Posté le 28-04-2008 à 09:57:04    

ah ben voila tu utilise deja ce que je t'ai dit, on a ecrit le message en meme temps désolé

Reply

Marsh Posté le 28-04-2008 à 09:58:18    

infoman64 a écrit :

voici comment je fais des noms de variables dynamiques
${"champ".$num_corres}


Exemple typique de n'importe-quoi à cause de la permissivité de php. Là tu devrais utiliser un tableau dont $num_corres sera l'indice.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:00:37    

en fait c'est bon c'est sur le ${$variables} que je bloquait le reste c'était des petites erreurs de codes...  
 
merci pour votre aide !

Reply

Marsh Posté le 28-04-2008 à 10:02:08    

elmarokinho a écrit :

en fait c'est bon c'est sur le ${$variables} que je bloquait le reste c'était des petites erreurs de codes...  
 
merci pour votre aide !


 
Oui mais si tu écoutais ce qu'on te dit tu n'aurais pas besoin de cette syntaxe ignoble.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:08:24    

infoman64 a écrit :

voici comment je fais des noms de variables dynamiques
${"champ".$num_corres}
 
apres je comprend pas exactement ce que tu veut
explique mieux


Ouéééé \o/
 

Code :
  1. <?php
  2. class FooClass {
  3.     }
  4. $foo = new FooClass();
  5. $foo->bar = "pouet";
  6. $truc = "bar";
  7. $pouet = "tr";
  8. $machin = "uc";
  9.  
  10. function tr($totoz){
  11.  global $pouet, $machin, $truc;
  12.  return ${$pouet.$machin}.$totoz;
  13. }
  14.  
  15. echo ${($foo->${${$foo->bar}.((${pouet}.${machin}===$pouet.${machin})?${machin}:${$pouet.$machin})})}(($foo->${${$foo->bar}.((${pouet}.${machin}===$pouet.${machin})?${machin}:${$pouet.$machin})}));


 
Spécial dédicace à Skeye [:stukka]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-04-2008 à 10:09:00    

oui mais ici je ne vois pas trop comment faire un tableau de tableau :??:

Reply

Marsh Posté le 28-04-2008 à 10:22:18    

elmarokinho a écrit :

oui mais ici je ne vois pas trop comment faire un tableau de tableau :??:

 
elmarokinho a écrit :


392 lignes ... c cho  :whistle:

 
Code :
  1. // Fonction permmettant d'extraire l'ID du routeur ( Switch-Cisco-000123 : _123 )
  2. $orig = explode('-', $switch_name);
  3. $dest = array_slice($orig, -1);
  4. $name_result = join('-', $dest);
  5. $switch_name_id = str_replace('"','', $name_result);
  6. $switch_name_id = "_".$switch_name_id ;
  7. echo $switch_name_id ;
  8. //-------------
  9. //plus loin ---
  10. //------------
  11.   $ip_new_switch = ${$switch_name_id}[$result_port] ;
  12.     $url = "stage2.php?ip_machine=" . $ip_machine . "&ip_switch=" . $ip_new_switch;
 

Array en question :

 
Code :
  1. $_123 = array (
  2. 'Gi0/1' => '192.126.60.198',
  3. 'Gi0/2' => '192.126.60.195'
  4. ) ;
 


merci de votre aide

 


c'est simple, au lieu de créer des variables ayant pour nom tes switch_name_id, tu crées un tableau dont les indexes sont tes switch_name_id.

 
masklinn a écrit :


Ouéééé \o/

 
Code :
  1. <?php
  2. class FooClass {
  3.     }
  4. $foo = new FooClass();
  5. $foo->bar = "pouet";
  6. $truc = "bar";
  7. $pouet = "tr";
  8. $machin = "uc";
  9.  
  10. function tr($totoz){
  11.  global $pouet, $machin, $truc;
  12.  return ${$pouet.$machin}.$totoz;
  13. }
  14.  
  15. echo ${($foo->${${$foo->bar}.((${pouet}.${machin}===$pouet.${machin})?${machin}:${$pouet.$machin})})}(($foo->${${$foo->bar}.((${pouet}.${machin}===$pouet.${machin})?${machin}:${$pouet.$machin})}));
 

Spécial dédicace à Skeye [:stukka]

 

[:ddr555]


Message édité par skeye le 28-04-2008 à 10:22:37

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:28:51    


je sais plus, exécute tu verras bien.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:32:42    


[:haha]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:35:39    

non, j'ai du bash que sur des serveurs, donc je vais éviter.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2008 à 10:37:02    

sa donne quoi? :??: lol

Reply

Marsh Posté le 28-04-2008 à 10:38:52    

elmarokinho a écrit :

sa donne quoi? :??: lol


http://en.wikipedia.org/wiki/Forkbomb


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-04-2008 à 10:40:29    

masklinn a écrit :


....iki/Forkbomb


 
pas besoin d'aller plus loin  :lol:


Message édité par elmarokinho le 28-04-2008 à 10:40:57
Reply

Marsh Posté le 28-04-2008 à 10:42:12    

C'est un exemple classique de forkbomb (un process qui se réplique indéfiniment en monopolisant les ressources de la machine).
 
Sur un serveur bien configuré, avec une limite du nombre de process créables par un user, ça n'entraîne pas de plantage.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed