Page 1 sur 1

Lecture du XML

Posté : 20 déc. 2005, 06:40
par merlin2204
Je vais essayer de résumer le plus clairement possible mon probleme sans vous coller des pages de code entiere.

Voici mon probleme : Je génère un flux XML sans aucun probleme semble t il. Voici l'adresse : http://www.btl-clan.com/xml/ladderfluxbrut.xml

J'ai ensuite codé une page php qui lit ce flux et l'affiche dans un tableau. Cette page php est ensuite mise à la disposition d'autre site pour afficher les résultats des matchs (ce qui est dans le flux). Mon probleme est que ce bloc php ralenti concidérablement l'affichage des pages. Je vous laisse en juger sur cette page : http://www.btl-clan.com/ladderflux2.php

Voici une partie du code de mon bloc php :
$file = fopen($fichier_xml,"r");
if ($file) {

    while (!feof($file)) $raw .= fread($file,32000);
    fclose( $file );

    if(eregi("<match>(.*)</match>",$raw,$rawitems)){

        $items = explode("<match>", $rawitems[0]);
        $nb = count($items);
        $maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite;

        for ($i=0;$i<$maximum;$i++) {

            eregi("<date>(.*)</date>",$items[$i+1], $date); 
            eregi("<team1>.*<tag>(.*)</tag>.*</team1>",$items[$i+1], $team1tag);
            eregi("<team1>.*<nom>(.*)</nom>.*</team1>",$items[$i+1], $team1nom);			
            eregi("<team1>.*<nationalite>(.*)</nationalite>.*</team1>",$items[$i+1], $team1nationalite);
            eregi("<team1>.*<site>(.*)</site>.*</team1>",$items[$i+1], $team1site);
            eregi("<team1>.*<urldetri>(.*)</urldetri>.*</team1>",$items[$i+1], $team1urldetri);
            eregi("<team1>.*<score>(.*)</score>.*</team1>",$items[$i+1], $team1score);

etc...
Mes valeurs sont ensuite utilisé dans la partie html avec : <? echo $team1tag[1] ?> par exemple.

Ma question est la suivante : Qu'est ce qui ralenti l'affichage ? Est ce une partie du code de récupération des valeurs qui est la cause ou existe t il une autre méthode pour récupérer les infos d'un fux XML qui soit moins lente ?

Posté : 20 déc. 2005, 08:58
par GillouX
tu peux faire cela également grâce à la fonction xslt_create et xslt_process

va voir les pages de manuel

j'ai aucun tps d'attente pour le chargement avec cette solution :D

Posté : 20 déc. 2005, 10:00
par jeff
si ton fichier est creer pourquoi ne pas utiliser directement xslt

Posté : 26 déc. 2005, 19:41
par Ic3Cub3
J'ai également un petit probleme d'affichage de XML.
*******************************************

J'ai un fichier XML et un XSL associé.
Si j'affiche directement mon XML ou XSL pas de probleme ( exemple : je rentre cette url : www.monsite.com/monfichier.xml )
Maintenant j'ai un fichier PHP qui me permet, normalement d'afficher cela mais cela coince et je ne trouve pas pourquoi. j'ai cette erreur :
Fatal error: Call to undefined function: xslt_create() in /.../monfichier.php on line 2
Pourtant cela devrait s'y trouver.... : Voici le PHPinfo : http://perso.xenon-hebergement.net/icecube/

Voici mon fichier PHP :
<?php
$xh = xslt_create();

$file=fopen("fichier.xml","r");
$xml=fread($file,1638400);
fclose($file);

$file=fopen("fichier.xsl","r");
$xsl=fread($file,1638400);
fclose($file);

$arguments = array(
  '/_xml' => $xml,
  '/_xsl' => $xsl
  );

$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);

xslt_free($xh);

print "$result";
?>
Quelqu'un sait il m'aider ?
Merci d'avance

Posté : 29 déc. 2005, 14:48
par Ic3Cub3
Personne ?

Posté : 30 déc. 2005, 18:29
par GillouX
tu utilise easyphp??

si oui tu dois activer l'extension php_xlst

pour ca clique droit sur easyphp, configuration , extension php

gl

Posté : 30 déc. 2005, 18:38
par Ic3Cub3
Ca c'est pour le faire en interne sur mon pc.
Mais moi je recherche comment faire cela via un hebergement ki ne m'appartient pas.
Donc je ne sais pas faire de clic droit....etc....

Posté : 31 déc. 2005, 01:41
par GillouX
c'est que le module est pas installé

c'est un herbergeur gratuit?

Posté : 31 déc. 2005, 16:16
par Ic3Cub3
g un hebergement gratuit, pour tout mes test
Et g un hebergement payant pour mon site web