Lecture du XML

Petit nouveau ! | 3 Messages

20 déc. 2005, 06:40

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 ?

Eléphanteau du PHP | 27 Messages

20 déc. 2005, 08:58

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
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Mammouth du PHP | 1311 Messages

20 déc. 2005, 10:00

si ton fichier est creer pourquoi ne pas utiliser directement xslt

Eléphant du PHP | 105 Messages

26 déc. 2005, 19:41

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

Eléphant du PHP | 105 Messages

29 déc. 2005, 14:48

Personne ?

Eléphanteau du PHP | 27 Messages

30 déc. 2005, 18:29

tu utilise easyphp??

si oui tu dois activer l'extension php_xlst

pour ca clique droit sur easyphp, configuration , extension php

gl
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Eléphant du PHP | 105 Messages

30 déc. 2005, 18:38

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....

Eléphanteau du PHP | 27 Messages

31 déc. 2005, 01:41

c'est que le module est pas installé

c'est un herbergeur gratuit?
le jour où on mettra les cons sur orbite, t'auras pas fini de tourner

Eléphant du PHP | 105 Messages

31 déc. 2005, 16:16

g un hebergement gratuit, pour tout mes test
Et g un hebergement payant pour mon site web