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

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Expression régulière pour JSON

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Expression régulière pour JSON

n°2099177
naeco
Buddy Rich Big Band
Posté le 02-09-2011 à 11:55:03  profilanswer
 

Bonjour,
Je suis en train de faire un site hébergé par FREE, et la version de PHP est la 4.4.3, ce qui est donc inférieur à la 5.2.0 où l'extension JSON est fourni par défaut.
Donc en attendant que FREE mette à jour sa version de PHP, il faut que je décode le JSON à la main.
 
Pour ça, je prends ma petite chaine de caractère, disons juste une sous chaine comme ça :
 

Code :
  1. "elementMenu": "1","draggable": "","elementMenu": "1","titre": "article rentr� en base � la main ","role": "3","archive": "on"


 
du coup, j'ai voulu traiter ça par une expression régulière avec :
 

Code :
  1. $listElement = preg_split("#^\"|\s*\",\"\s*|\"$#", $value);
  2. ou
  3. $listElement = preg_split("#\A\"|\s*\",\"\s*|\"\z#", $value);


 
mais les deux cas me retournent :
 

Code :
  1. array(8) {
  2.      [0]=> string(0) ""
  3.      [1]=> string(16) "elementMenu": "1"
  4.      [2]=> string(13) "draggable": ""
  5.      [3]=> string(16) "elementMenu": "1"
  6.      [4]=> string(45) "titre": "article rentr� en base � la main"
  7.      [5]=> string(9) "role": "3"
  8.      [6]=> string(13) "archive": "on"
  9.      [7]=> string(0) ""
  10. }


 
 
et comme vous pouvez le voir, ça ramène un élément vide au début et un à la fin. Je pourrai faire une boucle qui ignore le premier et le dernier élément, mais pour la beauté du geste, j'aimerai bien mettre en place une expression régulière qui renvoi directement le bon tableau.


Message édité par naeco le 07-09-2011 à 19:44:43
mood
Publicité
Posté le 02-09-2011 à 11:55:03  profilanswer
 

n°2099255
Tirkyth
Posté le 02-09-2011 à 16:03:58  profilanswer
 

Il parait que si tu mets un fichier .htaccess à la racine de ton FTP et qu'il contient

Code :
  1. php 1


Et bien tu auras PHP5. Et donc l'extension JSON.


Message édité par Tirkyth le 02-09-2011 à 16:05:21

---------------
Mon Feedback !
n°2099429
naeco
Buddy Rich Big Band
Posté le 04-09-2011 à 15:06:59  profilanswer
 

merci de ta réponse, je vais tester.
 
Par contre, pour le plaisir d'aboutir cette expression régulière, quelqu'un aurait une idée?

n°2099432
masklinn
í dag viðrar vel til loftárása
Posté le 04-09-2011 à 15:20:02  profilanswer
 

naeco a écrit :

merci de ta réponse, je vais tester.
 
Par contre, pour le plaisir d'aboutir cette expression régulière, quelqu'un aurait une idée?


JSON est une structure récursive, tu peux pas le parser correctement avec juste une expression régulière (sauf en perl, à la limite, je sais que les regex perl sont turing-complete et récursives).
 
Je suggérerais plus d'utiliser Pear JSON, c'est juste un fichier PHP à inclure.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2099605
CyberDenix
Posté le 05-09-2011 à 13:15:56  profilanswer
 

En fait PREG signifie PERL REGULAR, ce sont donc des expressions compatibles, et la récursivité de regexp est possible en PHP.
 
Maintenant, on est bien d'accord, parser du JSON avec une regexp, c'est comme découper de la viande avec un silex ! :D


---------------
Directeur Technique (CTO)
n°2099728
naeco
Buddy Rich Big Band
Posté le 05-09-2011 à 22:32:02  profilanswer
 

Nous sommes d'accord, j'ai pas cette prétention, je sais que mon JSON aura une complexité quantifiée, donc je fais un décodeur juste pour mes besoin.
Enfin là surtout, j'aimerai bien réussir à pas avoir ma première et dernière valeur vide, juste pour savoir le faire, même si peut être la solution du .htacess fonctionne.
 
Merci de vos d'idées !

n°2099731
CyberDenix
Posté le 05-09-2011 à 22:51:48  profilanswer
 

Je suis pas un habitué de preg_split, en général je fais plutot du preg_match_all (ce qui est quand même plus sympa : parenthèses capturantes, etc.).
 
En freestyle, pour du preg_split, je dirais :
 
'`\s*,\s*$`Usi'


---------------
Directeur Technique (CTO)
n°2100185
naeco
Buddy Rich Big Band
Posté le 07-09-2011 à 19:44:15  profilanswer
 

Je ne pense pas non.
Tant pis.
 
Sinon, c'était exact, avec ce .htacces, cela provoque actuellement le passage en PHP 5.1.3RC4-dev :
 

Code :
  1. php 1
  2. SetEnv PHP_VER 5


 
Merci !


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

  [RESOLU] Expression régulière pour JSON

 

Sujets relatifs
[regex-js] ma petite expression régulière javascript...[PHP] Expression regulière: supprimer les virgules entre parenthèses
génération d'expression régulière avec javaUn petit coup de pouce pour exclure mon RegEx (Expression régulière)
expression régulière 
Plus de sujets relatifs à : [RESOLU] Expression régulière pour JSON


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