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

  FORUM HardWare.fr
  Programmation
  PHP

  parseur php avec @implode, preg_split . Probleme pour adapter le code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parseur php avec @implode, preg_split . Probleme pour adapter le code

n°1895478
MatthieuFo​urcade
Posté le 16-06-2009 à 03:04:20  profilanswer
 

Bonjour,  
 
Je cherche a parser un fichier.
J'utilise un script (utilise pour le fil RSS du Figaro):
 

Code :
  1. function lit_rss($fichier,$objets) {
  2. // on lit tout le fichier
  3. if($chaine = @implode("",@file($fichier))) {
  4.  // on découpe la chaine obtenue en items
  5.  $tmp = preg_split("/<\/?"."item".">/",$chaine);
  6.  // pour chaque item
  7.  if (sizeof($tmp)-1 <= 9) {$j = sizeof($tmp)-1;}
  8.  else {$j = 9;}
  9.  for($z=1;$z<=$j;$z+=2)
  10.   // on lit chaque objet de l'item
  11.   foreach($objets as $objet) {
  12.    // on découpe la chaine pour obtenir le contenu de l'objet
  13.    $tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$z]);
  14.    // on ajoute le contenu de l'objet au tableau resultat
  15.    $resultat[$z-1][] = @$tmp2[1];
  16.   }
  17.  // on retourne le tableau resultat
  18.  return $resultat;
  19. }
  20. }


 
et l'appel de la fonction
 

Code :
  1. $rss = lit_rss("FICHIER.xml",array("Titre","description" ));
  2.  foreach($rss as $tab) {
  3.        
  4.  echo $tab[0];
  5.  echo $tab[1];
  6.  }


 
Le probleme c'est que je n'arrive pas a adapter la fonction lit_rss() a la specificite de mon fichier:
 
{"Categorie1":[{"Titre":"Titre n1","description":"numero 1 description"},{"Titre":"Titre n2","description":"numero 2 description"}],"hits":"1583","type":"categorie1","pages":80}
 
 
Je cherche donc a recuperer sous forme d'un tableau ou autre:
 
Titre n1, numero 1 description
Titre n2, numero 2 description
 
 
VOilou... SI quelqu'un avait une petite idee.. Ca m'aiderai bcp et m'eviterai de rester jusqu a 3h du mat sur mon pc :)
 
Cordialement,


Message édité par MatthieuFourcade le 16-06-2009 à 03:05:18

---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
mood
Publicité
Posté le 16-06-2009 à 03:04:20  profilanswer
 

n°1895871
Profil sup​primé
Posté le 16-06-2009 à 18:15:07  answer
 

mon dieu, utilise un parseur, pas les expressions régulières [:vomi]

n°1895880
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 16-06-2009 à 18:27:52  profilanswer
 

un petit coup de xslt  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1895886
flo850
moi je
Posté le 16-06-2009 à 18:35:30  profilanswer
 

utilise ca ; http://rssphp.net/ ou http://magpierss.sourceforge.net/


---------------

n°1895894
MatthieuFo​urcade
Posté le 16-06-2009 à 19:02:17  profilanswer
 

merci pour ces reponses...
 
J'avoue que le parser RSS est pas terrible ...
 
Probleme de JSON c'est que je dois eviter toutes les fonctions get_file_content, fopen etc... Qui ne marche pas puisque je suis chez FREE.  
 
Le parser que j'ai mis au debut est le seul qui ne me met pas d'erreur
du type
 
[function.fopen]: failed to open stream: HTTP request failed!


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1895902
MatthieuFo​urcade
Posté le 16-06-2009 à 19:18:35  profilanswer
 

Je rate peut etre quelques chose ? J'avoue ne pas etre tres tres bon en php.
 
J'ai essayé avec get_file_content, fopen, copy (pour d'avoir copier le fichier sur mon serveur) et j'ai a chaque fois une erreur du type
 
Warning: fopen(http://xxx.com/xxx) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/101...
 
 
Warning: get_file_content(http://xxx.com/xxx) [function.get_file_content]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/101...
 
Je précise que les serveurs FREE sont en php 4 donc pas de JSON_Decode ou autre...
 
Dit m'en plus NazzTazz.. Cordialement,


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1895904
MatthieuFo​urcade
Posté le 16-06-2009 à 19:45:40  profilanswer
 

Ok effectivement c'est du JSON.
 
Bon, il y a partout des trucs pour decoder du JSON en Php4... Le probleme c'est que j'ai tjs ce message d'erreur:
 
Warning: fopen(http://xxx.com/xxx) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/101...
 
 
Warning: get_file_content(http://xxx.com/xxx) [function.get_file_content]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /mnt/101...
 
 
Quand j'essaie d'importer le fichier en question. Auriez-vous une idee pour contourner ca ?
 
J'imagine que je peux utiliser ca ?
 
# if($chaine = @implode("",@file($fichier)))
 
 
 
 
Cordialement


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1895937
FlorentG
Unité de Masse
Posté le 16-06-2009 à 21:30:11  profilanswer
 

Nan mais c'est juste que free interdit le wrapper http:// pour les fonctions fopen ou file_get_contents [:petrus75]

n°1895998
MatthieuFo​urcade
Posté le 17-06-2009 à 01:19:53  profilanswer
 

ok. il y a t il un moyen de contourner cette limitation ?


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1896000
MatthieuFo​urcade
Posté le 17-06-2009 à 01:51:48  profilanswer
 

Ou plutot qu'elle est le moyen pour importer le fichier sur le serveur et faire mumuse apres dessus ? copy() ne marche pas... les fonctions ftp de php ?


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
mood
Publicité
Posté le 17-06-2009 à 01:51:48  profilanswer
 

n°1896111
MatthieuFo​urcade
Posté le 17-06-2009 à 10:41:24  profilanswer
 

http://rssphp.net/ ou http://magpierss.sourceforge.net/
 
J ai essayé les deux mais bien evidement ca ne marche pas car ce n'est pas fait pour du JSON....


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1896135
MatthieuFo​urcade
Posté le 17-06-2009 à 11:00:36  profilanswer
 

qd je dis tester, je suis aller voir s'il n'y avais pas des versions JSON :)
 
Pour resumer et etre clair:
 
Je cherche un parser JSON qui marche en PHP4 et qui evite les fonctions bloquées de FREE (fopen, get_file_content, ....).
 
Cordialement,


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1896162
MatthieuFo​urcade
Posté le 17-06-2009 à 11:25:38  profilanswer
 

Entierement d'accord :)
 
Mais c'est une solution que je ne voulais envisager qu'en dernier recours.
 
Et je pense que je vais bien devoir m'y mettre :(
 
Merci d'avoir eclairé tout ca et de m'avoir permis de bien comprendre mon probleme dans cette histoire :)


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"
n°1896166
MatthieuFo​urcade
Posté le 17-06-2009 à 11:27:30  profilanswer
 

Remarque: Je viens de trouver une solution:
 
http://docs.jquery.com/Ajax/jQuery.getJSON ca marche dans leur exemple avec un fichier json sur flickr... Il y a pu qu'a l'adapter :D


---------------
Dell XPS 1330 M - T9300 - 4Go - 250Go 7200 tr - LED - 8400 Gs /// Custom - P4 935D - 2Go - 500Go 7200 tr - 7600 Gs - Asus 19"

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

  parseur php avec @implode, preg_split . Probleme pour adapter le code

 

Sujets relatifs
[Oracle & PHP] boucle if dans while : problèmeCorrection d'un code (exercice)
Problème de code dans userform[Edit] Analyseur de code pour C++
Probleme spoiler sous IE mais pas sous FFProblème iframe
problème taille <div> avec Ajax.autocompleterProblème de clé étrangère [RESOLU]
Problème Libraires VBA Access 
Plus de sujets relatifs à : parseur php avec @implode, preg_split . Probleme pour adapter le code


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