begin process at 2010 03 19 14:35:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Probleme avec un parser XML vers PHP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme avec un parser XML vers PHP

lundi 15 août 2005 à 21:22:49 | Probleme avec un parser XML vers PHP

foliop

Salut j'utilise ce script pour afficher un flux XML en php : Code : function GetXMLTree ($xmldata) { ini_set ('track_errors', '0'); $xmlreaderror = false; $parser = xml_parser_create ('ISO-8859-1'); xml_parser_set_option ($parser, XML_OPTION_SKIP_WHITE, 1); xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, 0); if (!xml_parse_into_struct ($parser, $xmldata, $vals, $index)) { $xmlreaderror = true; echo "error"; } xml_parser_free ($parser); if (!$xmlreaderror) { $result = array (); $i = 0; if (isset ($vals [$i]['attributes'])) foreach (array_keys ($vals [$i]['attributes']) as $attkey) $attributes [$attkey] = $vals [$i]['attributes'][$attkey]; $result [$vals [$i]['tag']] = array_merge ($attributes, GetChildren ($vals, $i, 'open')); } ini_set ('track_errors', '0'); return $result; } function GetChildren ($vals, &$i, $type) { if ($type == 'complete') { if (isset ($vals [$i]['value'])) return ($vals [$i]['value']); else return ''; } $children = array (); while ($vals [++$i]['type'] != 'close') { $type = $vals [$i]['type']; if (isset ($children [$vals [$i]['tag']])) { if (is_array ($children [$vals [$i]['tag']])) { $temp = array_keys ($children [$vals [$i]['tag']]); if (is_string ($temp [0])) { $a = $children [$vals [$i]['tag']]; unset ($children [$vals [$i]['tag']]); $children [$vals [$i]['tag']][0] = $a; } } else { $a = $children [$vals [$i]['tag']]; unset ($children [$vals [$i]['tag']]); $children [$vals [$i]['tag']][0] = $a; } $children [$vals [$i]['tag']][] = GetChildren ($vals, $i, $type); } else $children [$vals [$i]['tag']] = GetChildren ($vals, $i, $type); if (isset ($vals [$i]['attributes'])) { $attributes = array (); foreach (array_keys ($vals [$i]['attributes']) as $attkey) $attributes [$attkey] = $vals [$i]['attributes'][$attkey]; if (isset ($children [$vals [$i]['tag']])) { if ($children [$vals [$i]['tag']] == '') { unset ($children [$vals [$i]['tag']]); $children [$vals [$i]['tag']] = $attributes; } elseif (is_array ($children [$vals [$i]['tag']])) { $index = count ($children [$vals [$i]['tag']]) - 1; if ($children [$vals [$i]['tag']][$index] == '') { unset ($children [$vals [$i]['tag']][$index]); $children [$vals [$i]['tag']][$index] = $attributes; } $children [$vals [$i]['tag']][$index] = array_merge ($children [$vals [$i]['tag']][$index], $attributes); } else { $value = $children [$vals [$i]['tag']]; unset ($children [$vals [$i]['tag']]); $children [$vals [$i]['tag']]['value'] = $value; $children [$vals [$i]['tag']] = array_merge ($children [$vals [$i]['tag']], $attributes); } } else $children [$vals [$i]['tag']] = $attributes; } } return $children; } // URL du flux xml $url = "info.xml"; $contents = file_get_contents($url); $data = GetXMLTree ($contents); print_r($data); Celui ci marche sans probleme quand le fichier est pas trop gros seulement si mon fichier XML fait 40mo ca ne marche pas je lance le script mais rien; page blanche si qqun peut m'aider
lundi 15 août 2005 à 21:29:22 | Re : Probleme avec un parser XML vers PHP

GRenard

soit que le temps limite a été dépassé donc mettre set_time_limit(0) mais ca métonnerait parce que tu devrais avoir une limite.
soit que ton fichier est trop gros pour l'espace alloué en mémoire
soit que php plante
soit que je sais pas :)

Je ne te donne pas de solution mais des constatation, essaie au moins la première.
display_errors est-il à on ? et error_reporting à E_ALL ?

Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]
lundi 15 août 2005 à 21:33:49 | Re : Probleme avec un parser XML vers PHP

foliop

VOici l'erreur que j'ai : Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 40564120 bytes) in /home/httpd/vhosts/synetik.net/httpdocs/xml/xml-template.php on line 102
lundi 15 août 2005 à 21:39:15 | Re : Probleme avec un parser XML vers PHP

GRenard

ma 2e réponse était la bonne... tu as atteint le maximum alloué par PHP.
Soit tu augmente le memory limit ou soit que tu parse un plus petit fichier.


Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]
lundi 15 août 2005 à 21:40:14 | Re : Probleme avec un parser XML vers PHP

foliop

Ou puis je augmenter le memory limit ? et ou dois je le changer ? Merci en tout cas
lundi 15 août 2005 à 21:44:06 | Re : Probleme avec un parser XML vers PHP

GRenard

dans le php.ini
elle est par défaut à 8M
Mais tu ne peux pas la changer sur aucun hébergeur normalement, ni payant ni gratuit... Chez toi tu peux très bien par contre :)


Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]
lundi 15 août 2005 à 21:46:31 | Re : Probleme avec un parser XML vers PHP

foliop

J'ai un serveur dédié J'ai changé cette valeur sur plusieurs niveaux et meme arrivé a 128M ca ne change rien au soucis ! J'ai 256mo de Ram sur mon dédié je peux pousser a combien sans altérer le serveur et la BP ps : ce script ne tournera qu'une seule fois
lundi 15 août 2005 à 21:49:30 | Re : Probleme avec un parser XML vers PHP

GRenard

Ca a pas rapport avec la bande passante.
C'est l'utilisation de la mémoire interne pour PHP...
Si le script ne tourne qu'une seule fois, mets le haut et remets le bas après...

Si ca a répondu à ta question choisis les réponses à accepter


Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]
lundi 15 août 2005 à 21:51:24 | Re : Probleme avec un parser XML vers PHP

foliop

Oui ca a repondu Une seule question encore : jusqua combien je peux le mettre ?
lundi 15 août 2005 à 22:11:10 | Re : Probleme avec un parser XML vers PHP

GRenard

Réponse acceptée !
Bah je ne sais pas d'où il prend sa mémoire mais mets le plus grand que ton fichier que tu souhaite ouvrir.


Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]

1 2

Cette discussion est classée dans : tag, xml, attributes, vals, children


Répondre à ce message

Sujets en rapport avec ce message

XML -> Array -> SQL [ par GMo888 ] Bonjour à tous,D'abod, un tout grand merci à la communauté de ce site pour les préciseuses informations ! :-)Après de multiple recherche, j'en arrive Problème parser XML avec SAX [ par shadowfox666 ] Bonjour,Je suis actuellement en train de réaliser un parser XML fonctionnant avec SAX pour gérer de l'évènementiel.Le fichier XML fait plus de 70mega Flux WEBRANKINFO [ par malik7934 ] Hello,Aujourd'hui j'ai fait la douloureuse decouverte que je ne pouvais pas utiliser simple xml sur mon site.... je me suis donc empresse de demander XML et EncryptedData ? [ par debuger ] Bonjour,J'aimerai savoir s'il est possible de Parser un fichier XML qui est crypté ! ? et celà avec une feuille de style XSL bien sur ?d'ailleurs comm inverser un fichier xml [ par zenouba2005 ] salut jé un fichier xml je veux une fonction php qui l'inverse voila un exemplevoila mon fichier xml      voila ce que je veux comme resultat<a RSS Ajouter dans dase de donnée [ par Nexto ] Bonjour :) Je créé une petite page ou je voudrais mettre plein de RSS différent avec différentes categ et je voudrais aussi faire un formulaire de re double post dans mon xml ??? [ par gfpl ] bonjour, voila je comprend pas pourquoi il m'ecrit 2 fois la meme chose dans mon xml apres un post  1 bon et le meme mais avec les champs vide ??? - Générer, Ecrire et Lire XML [ par jcheseaux ] Après avoir parcouru "tous les codes" sur phpcs (entre guillemets parce que je suis pas trop patient), je ne trouve pa de tutos SIMPLES ET EFFICACES u PHP XML HTML et FireFox [ par liteulkevin ] Bonsoir, C'est encore moi. Mon soucis est le suivant : J'appelle une page php qui affiche des fichiers xml contenant des graphiques à l'aide de Fla Problème XML avec PHP5 [ par Kentobar ] Tout d'abord,je suis vraiment débutant en PHP. Je veux faire des recherches dans un document XML en utilisant SAXY et afficher le résultat.J'ai vraime


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales