Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2352 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Convertir une chaine en déclaration de variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir une chaine en déclaration de variable

n°1561614
finntroll
Posté le 17-05-2007 à 14:56:32  profilanswer
 

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
mood
Publicité
Posté le 17-05-2007 à 14:56:32  profilanswer
 

n°1561625
masklinn
í dag viðrar vel til loftárása
Posté le 17-05-2007 à 15:27:27  profilanswer
 

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
n°1561688
finntroll
Posté le 17-05-2007 à 18:24:19  profilanswer
 

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

n°1561693
AlphaZone
Posté le 17-05-2007 à 18:32:30  profilanswer
 

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
n°1561701
masklinn
í dag viðrar vel til loftárása
Posté le 17-05-2007 à 18:37:26  profilanswer
 

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
n°1561755
finntroll
Posté le 17-05-2007 à 21:13:41  profilanswer
 

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...

n°1561756
finntroll
Posté le 17-05-2007 à 21:14:43  profilanswer
 

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
n°1561764
masklinn
í dag viðrar vel til loftárása
Posté le 17-05-2007 à 21:33:46  profilanswer
 

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
n°1561784
Master p
My new cock ring :D
Posté le 17-05-2007 à 22:12:55  profilanswer
 

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
n°1561797
masklinn
í dag viðrar vel til loftárása
Posté le 17-05-2007 à 22:32:02  profilanswer
 

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
mood
Publicité
Posté le 17-05-2007 à 22:32:02  profilanswer
 

n°1561799
Master p
My new cock ring :D
Posté le 17-05-2007 à 22:35:24  profilanswer
 

'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
n°1561803
masklinn
í dag viðrar vel til loftárása
Posté le 17-05-2007 à 22:43:45  profilanswer
 

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
n°1561815
finntroll
Posté le 17-05-2007 à 23:22:44  profilanswer
 

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

n°1561834
masklinn
í dag viðrar vel til loftárása
Posté le 18-05-2007 à 00:36:12  profilanswer
 

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
n°1561843
zapan666
Tout est relatif
Posté le 18-05-2007 à 01:05:48  profilanswer
 

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 !
n°1561863
skeye
Posté le 18-05-2007 à 07:14:01  profilanswer
 

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 -
n°1561871
finntroll
Posté le 18-05-2007 à 08:28:16  profilanswer
 

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
n°1561872
finntroll
Posté le 18-05-2007 à 08:38:19  profilanswer
 

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:

n°1561873
skeye
Posté le 18-05-2007 à 08:45:01  profilanswer
 

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 -
n°1561875
cgo2
Dum spiro spero
Posté le 18-05-2007 à 08:49:07  profilanswer
 

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
n°1561882
finntroll
Posté le 18-05-2007 à 09:38:43  profilanswer
 

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

n°1561893
cosmoschtr​oumpf
dawa powered
Posté le 18-05-2007 à 10:14:57  profilanswer
 

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
n°1561926
gatsu35
Blablaté par Harko
Posté le 18-05-2007 à 11:20:11  profilanswer
 

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
n°1561956
finntroll
Posté le 18-05-2007 à 11:58:05  profilanswer
 

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

n°1561969
zapan666
Tout est relatif
Posté le 18-05-2007 à 12:08:01  profilanswer
 

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 !
n°1561971
skeye
Posté le 18-05-2007 à 12:09:40  profilanswer
 

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 -
n°1562006
rufo
Pas me confondre avec Lycos!
Posté le 18-05-2007 à 13:03:31  profilanswer
 

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...

n°1562017
finntroll
Posté le 18-05-2007 à 13:21:22  profilanswer
 

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

n°1887003
eilijah
Posté le 22-05-2009 à 12:19:10  profilanswer
 

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
n°1887004
eilijah
Posté le 22-05-2009 à 12:20:35  profilanswer
 

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

n°1887007
masklinn
í dag viðrar vel til loftárása
Posté le 22-05-2009 à 12:27:02  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Convertir une chaine en déclaration de variable

 

Sujets relatifs
mettre une valeur du presse papier dans une variable[RESOLU] chaine caractère en parametre de fonction / Javascript
Tester le nombre de lettre d'une chaine de caractéresTest une variable de session dans un htaccess
variable a la place d'un indice dans un tableau en jsCréation d'une variable avec echo et affectation d'une valeur
Traitement par lot, convertir les fichiers avec la mêm extentionConversion d'une chaine de caracteres
[PHP] Variable de sessionSimple récupération d'une variable php
Plus de sujets relatifs à : Convertir une chaine en déclaration de variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR