Convertir une chaine en déclaration de variable

Convertir une chaine en déclaration de variable - PHP - Programmation

Marsh Posté le 17-05-2007 à 14:56:32    

Hello à tous !
 
J'ai une petite question :
 
J'ai un tableau qui contient ce genre de chaines : ("params1=val1", "params2=val2", "param3=val3", ...)
 
et j'aimerais définir les variables suivantes :
$params1 = "val1";
$params2 = "val2";
$params3 = "val3";
 
Comment m'y prendre ?


Message édité par finntroll le 17-05-2007 à 14:57:25
Reply

Marsh Posté le 17-05-2007 à 14:56:32   

Reply

Marsh Posté le 17-05-2007 à 15:27:27    

Tu t'y prends pas et tu le fais pas, c'est crade et ça n'a strictement aucun intérêt.


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

Marsh Posté le 17-05-2007 à 18:24:19    

si ça a son interet, t'as jamais entendu parlé du mod_rewrite de apache ?
 
problème tjs ouvert.

Reply

Marsh Posté le 17-05-2007 à 18:32:30    

function.explode ? Avec un foreach ?

 


Et je suis du même avis de Masklinn, c'est un peu cracra ^^


Message édité par AlphaZone le 17-05-2007 à 18:32:44
Reply

Marsh Posté le 17-05-2007 à 18:37:26    

finntroll a écrit :

si ça a son interet


non, tu ne sais pas de quoi tu parles

finntroll a écrit :

t'as jamais entendu parlé du mod_rewrite de apache ?


Bien sûr que si et ça n'a strictement aucun rapport, tu ne sais pas de quoi tu parles bis.

AlphaZone a écrit :

Et je suis du même avis de Masklinn, c'est un peu cracra ^^


C'est pas "un peu cracra", c'est totalement immonde [:spamafote]


Message édité par masklinn le 17-05-2007 à 18:38:19

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

Marsh Posté le 17-05-2007 à 21:13:41    

oui mais le problème avec un foreach c'est que les variables sont déclarées à l'intérieur des {}, mais meurent une fois dehors...

Reply

Marsh Posté le 17-05-2007 à 21:14:43    

Masklinn, c'est pas parce que t'es pas assez futé pour trouver une solution à ce problème que tu dois venir polluer avec tes messages inutiles, merci de quitter ce topic.
 
Edit : Inutile de répondre par une nème critique, si tu veux prouver que t'es pas un pathétique troll incompétant écris un bout de code qui fait ce que je demande.

Message cité 1 fois
Message édité par finntroll le 17-05-2007 à 21:16:58
Reply

Marsh Posté le 17-05-2007 à 21:33:46    

finntroll a écrit :

Masklinn, c'est pas parce que t'es pas assez futé pour trouver une solution à ce problème que tu dois venir polluer avec tes messages inutiles, merci de quitter ce topic.


[:rofl]

finntroll a écrit :

Edit : Inutile de répondre par une nème critique, si tu veux prouver que t'es pas un pathétique troll incompétant écris un bout de code qui fait ce que je demande.


Ce que tu demandes n'a aucun sens et est d'une stupidité sans nom et d'un intérêt nul.
 
Mais si ça t'amuse...

Code :
  1. l = ["params1=val1", "params2=val2", "param3=val3"]
  2. for k, v in map(lambda s: s.split("=" ), l):
  3.    locals()[k] = v
  4.  
  5. print params1
  6. print params2
  7. print params3


Content? [:dawa]


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

Marsh Posté le 17-05-2007 à 22:12:55    

masklinn a écrit :

[:rofl]
 
Ce que tu demandes n'a aucun sens et est d'une stupidité sans nom et d'un intérêt nul.
 
Mais si ça t'amuse...

Code :
  1. l = ["params1=val1", "params2=val2", "param3=val3"]
  2. for k, v in map(lambda s: s.split("=" ), l):
  3.    locals()[k] = v
  4.  
  5. print params1
  6. print params2
  7. print params3


Content? [:dawa]

Inculte [:cerveau mlc]
Python ne dispose pas de cette feature génialissime qui permet un nom de variable dynamique (dont tu as d'ailleurs reconnu les bienfaits sur bla²)


---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 17-05-2007 à 22:32:02    

Master p a écrit :

Inculte [:cerveau mlc]
Python ne dispose pas de cette feature génialissime qui permet un nom de variable dynamique (dont tu as d'ailleurs reconnu les bienfaits sur bla²)


Bah on a `locals()` et `globals()` qui permettent de jouer directement avec les variables de tous les namespaces dispos, c'est juste plus clair :o
 
Ou alors on tape directement dans l'interpréteur via `inspect` et la c'est la fête du slip, tu peux même jouer avec les stackframes :o


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

Marsh Posté le 17-05-2007 à 22:32:02   

Reply

Marsh Posté le 17-05-2007 à 22:35:24    

'tain, j'avais pas tilté le `locals`
T'as essayé avec une chaine "v=HAHA" [:cerveau petrus] ?

Message cité 1 fois
Message édité par Master p le 17-05-2007 à 22:35:32

---------------
HAHAHA I M USING TEH INTERNET
Reply

Marsh Posté le 17-05-2007 à 22:43:45    

Master p a écrit :

'tain, j'avais pas tilté le `locals`
T'as essayé avec une chaine "v=HAHA" [:cerveau petrus] ?


Ca peut pas marcher dans la mesure ou en Python `for` ne crée pas une scope, donc la variable v que tu crées dans locals() est écrasée par le `v` de `for k, v in ` à l'itération suivante.

 

(naturellement on pourrait le faire marcher en utilisant des noms différents, on pourrait ptet aussi le faire avec des listcomps je sais pas si elles leakent encore)

 

Par contre on pourrait facilement passer par des constructs différents, genre

Code :
  1. l = ["params1=val1","params2=val2","params3=val3","v=HAHA","this=SPARTAAA"]
  2. locals().update(dict(map(lambda s: s.split('='), l)))
  3.  
  4. print v # sort "HAHA"
  5. print this # sort "SPARTAAA"


Message édité par masklinn le 17-05-2007 à 22:48:23

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

Marsh Posté le 17-05-2007 à 23:22:44    

en résumé t'as aucune idée de comment faire ça en PHP.
 
c'est bien ce que je pensais, une grande gueule mais rien derrière

Reply

Marsh Posté le 18-05-2007 à 00:36:12    

finntroll a écrit :

en résumé t'as aucune idée de comment faire ça en PHP.


Tu devrais le poster encore une ou deux fois, si tu le répètes suffisament souvent tu finiras bien par y croire [:john keats]  

finntroll a écrit :

c'est bien ce que je pensais, une grande gueule mais rien derrière


En fait je pense que la partie la plus comique de ce thread est que tu ne sais pas faire quelque chose d'aussi trivial, mais que tu refuses d'écouter les gens qui, plus au courant que toi, te disent que c'est une mauvaise idée, une mauvaise méthode et une mauvaise direction [:el g]


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

Marsh Posté le 18-05-2007 à 01:05:48    

finntroll a écrit :

si ça a son interet, t'as jamais entendu parlé du mod_rewrite de apache ?


il dit qu'il voit pas le rapport


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 18-05-2007 à 07:14:01    

Bon, le guignol il va lire ça jusqu'au bout, et il reviendra quand il aura compris qu'il essaie de faire de la merde :

 

http://forum.hardware.fr/forum2.ph [...] 0#t1560100

Message cité 1 fois
Message édité par skeye le 18-05-2007 à 07:14:22

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

Marsh Posté le 18-05-2007 à 08:28:16    

zapan666 a écrit :

il dit qu'il voit pas le rapport


 
t'as pas assez d'imagination apparament alors
 
 
.htaccess

Code :
  1. Options +FollowSymlinks
  2. RewriteEngine on
  3. RewriteRule ^(.+)/(.+).htm parse.php?p=$1&params=$2


 
parse.php

Code :
  1. <?
  2. $p = $_GET['p'];
  3. $params = $_GET['params'];
  4. $params2 = explode("*",$params);
  5. // Bout de code manquant
  6. include("index.php" );
  7. ?>


 
 
en requestant par exemple :
/news/id=23*comment=32*blah=blah.htm
 
 
Edit : Ah et je vous vois venir, vous allez me dire de prévoir une rule par type de page, hors j'ai envie de faire un truc général qui marche pour toutes les configurations, le site a une vingtaine de pages différentes avec chacun ses propres paramètres. ma solution est universelle.


Message édité par finntroll le 18-05-2007 à 08:34:20
Reply

Marsh Posté le 18-05-2007 à 08:38:19    

skeye a écrit :

Bon, le guignol il va lire ça jusqu'au bout, et il reviendra quand il aura compris qu'il essaie de faire de la merde :
 
http://forum.hardware.fr/forum2.ph [...] 0#t1560100


 
le problème c'est que pour parcourir ce tableau je suis obligé de foutre le code dans des brackets, ce qui fait qu'a la fin du for/foreach les variables sont mortes..
c'est si dur que ça à comprendre ?  :sleep:

Reply

Marsh Posté le 18-05-2007 à 08:45:01    

finntroll a écrit :

le problème c'est que pour parcourir ce tableau je suis obligé de foutre le code dans des brackets, ce qui fait qu'a la fin du for/foreach les variables sont mortes..
c'est si dur que ça à comprendre ?  :sleep:


1) t'es mauvais
2) créer des variables nommées dynamiquement c'est crade et ça ne sert à rien. Les tableaux c'est pas fait pour les chiens.


Message édité par skeye le 18-05-2007 à 08:45:57

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

Marsh Posté le 18-05-2007 à 08:49:07    

finntroll a écrit :

le problème c'est que pour parcourir ce tableau je suis obligé de foutre le code dans des brackets, ce qui fait qu'a la fin du for/foreach les variables sont mortes..
c'est si dur que ça à comprendre ?  :sleep:


 
Oui, j'ai jamais entendu parler d'une feature comme ça en PHP.
 

Code :
  1. $array = array(
  2. 'param1=val1',
  3. 'param2=val2',
  4. 'param3=val3'
  5. );
  6. foreach ( $array as $value ) {
  7. $n = strpos($value, '=');
  8. ${substr($value,0,$n)} = substr($value,$n+1);
  9. }
  10. echo $param1; // affiche "val1'


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 18-05-2007 à 09:38:43    

erf j'étais sûr que comme en Java et en C++ les variables étaient virée après la fin d'un bloc (sauf si elles ont été déclarées avant)
 
bon ben merci alors

Reply

Marsh Posté le 18-05-2007 à 10:14:57    

finntroll a écrit :

erf j'étais sûr que comme en Java et en C++ les variables étaient virée après la fin d'un bloc (sauf si elles ont été déclarées avant)
 
bon ben merci alors


:love:
 
t'as passé ton temps à envoyer chier le monde parce que "ça marchera pas", mais t'as même pas testé :love:


---------------
Android/Manettes/Metroidvania/Zelda/Indés/Retrogaming/VDS jeux
Reply

Marsh Posté le 18-05-2007 à 11:20:11    

finntroll a écrit :

erf j'étais sûr que comme en Java et en C++ les variables étaient virée après la fin d'un bloc (sauf si elles ont été déclarées avant)

 

bon ben merci alors


Et si tu faisais un tableau associatif [:petrus dei]


Message édité par gatsu35 le 18-05-2007 à 12:55:03
Reply

Marsh Posté le 18-05-2007 à 11:58:05    

cosmoschtroumpf a écrit :

:love:
 
t'as passé ton temps à envoyer chier le monde parce que "ça marchera pas", mais t'as même pas testé :love:


 
 
c'est le monde qui m'a envoyé chier dès le début tu veux dire

Reply

Marsh Posté le 18-05-2007 à 12:08:01    

Si j'attaque le site avec une URL du type :  
 

Code :
  1. /456/GLOBALS=avion


il se passe quoi ? [:jean-guitou]  
(Dans ma tête, ça redéfini $GLOBALS et ça fou la merde)
 
J'aurais tendance a dire que la règle de ton .htaccess est mal conçu...


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 18-05-2007 à 12:09:40    

finntroll a écrit :

c'est le monde qui m'a envoyé chier dès le début tu veux dire


Non. Le monde a essayé de te faire comprendre que son expérience lui a enseigné que ce que tu essayais de faire était mal. Mais comme tu as l'impression d'être plus malin que tout le monde, ça t'a renforcé dans l'idée qu'il fallait le faire quand même.[:moule_bite]


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

Marsh Posté le 18-05-2007 à 13:03:31    

en lisant la doc de php, il aurait trouvé... :sarcastic:  
http://fr.php.net/manual/fr/function.parse-str.php
 
Mais c'est tellement plus facile de demander directement et ensuite de critiquer ceux qui donnent des conseils (et des bons en +)  :pfff: Pour info finntroll, Masklinn, c'est pas le dernier des neuneus en terme de programmation...

Reply

Marsh Posté le 18-05-2007 à 13:21:22    

topic à fermer, j'ai eu ma réponse

Reply

Marsh Posté le 22-05-2009 à 12:19:10    

Putin mais j'hallucine lol, le gars il vient sur un forum pour avoir un peu d'aide.
Il pose une question de débutant et vous lui expliquez strictement rien en lui disant de faire autre chose..
Ca serait pas plus constructif de lui expliquer pourquoi on fait pas ce genre de chose ou comment on peut faire autrement?  
sérieux les mecs faut redescendre de son nuage tout le monde à le droit d'apprendre...
Après tu tapes une recherche sur google et tu tombes sur un post comme ça qui apporte que dalle...
 
Quand t'essai de comprendre un truc meme si ca sert a rien , c'est toujours interessant de savoir pourquoi ca sert a rien on est pas des chiens, si on on vous dit 'y'a rien derriere la porte', alors vous sortez jamais de chez vous?  
 
Super +1 pour la vanité et l' égoisme, -15 pour l'altruisme
Monde capitaliste de merde

Message cité 1 fois
Message édité par eilijah le 22-05-2009 à 12:25:27
Reply

Marsh Posté le 22-05-2009 à 12:20:35    

euh désolé pour le déterrage de post mais sérieux c'est tellement revoltant ce genre d'attitude

Reply

Marsh Posté le 22-05-2009 à 12:27:02    

eilijah a écrit :

Putin mais j'hallucine lol, le gars il vient sur un forum pour avoir un peu d'aide.
Il pose une question de débutant et vous lui expliquez strictement rien en lui disant de faire autre chose..
Ca serait pas plus constructif de lui expliquer pourquoi on fait pas ce genre de chose ou comment on peut faire autrement?
sérieux les mecs faut redescendre de son nuage tout le monde à le droit d'apprendre...
Après tu tapes une recherche sur google et tu tombes sur un post comme ça qui apporte que dalle...

 

Quand t'essai de comprendre un truc meme si ca sert a rien , c'est toujours interessant de savoir pourquoi ca sert a rien on est pas des chiens, si on on vous dit 'y'a rien derriere la porte', alors vous sortez jamais de chez vous?

 

Super +1 pour la vanité et l' égoisme, -15 pour l'altruisme
Monde capitaliste de merde


Tu voudrais pas aller jouer dans un hachoir industriel? [:mom boucher]


Message édité par masklinn le 22-05-2009 à 12:28:48

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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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