Accueil > Forum > > > > Probleme avec un parser XML vers PHP
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 ]
|
|
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
Livres en rapport
|
Derniers Blogs
[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|