mixer plusieurs flux xml

WRInaute discret
Bonjour,

J'utilise sur mon site un flux xml de la maniére suivante (abrégé) :

Code:
    $file = "http://xxxxxxxxxxxxxxx";
     // je télécharge mon flux
....
....
....
...
    eregi("<login>(.*)</login>",utf8_decode( $results[$i+1] ), $login);
    // j'enregistre chaque balise dans une variable

...
...
...
    echo ".................";
   // J'affiche le flux sur mon site.

Ce que j'aimerais faire c'est la même chose mais avec 3 flux qui ont exactement la même structure.

Et j'aimerais que php affiche aléatoirement (mélangé) les résultats des trois flux.

Je ne vois pas du tous dans quel sens partir sans que ce ne soit une usine à gaz.

Donc: récupérer les trois flux, les parser et afficher les résultats aléatoirement.

Quelqu'un aurait-il une idée ou autre qui puisse m'aider dans la structure de mon script.

Merci
 
WRInaute discret
Fait le mélange dés la constitution du flux avec SQL avec un tri par une colonne donnée

Les flux ne m'appartiennent pas, je ne peux donc pas modifier leur constitution.

Je n'ai donc pas le choix de récupérer ces trois flux et de me débrouiller après avec ce qu'il contiennent.

Dans ton idée, sauf erreur de ma part, il n'y aurait plus qu'un seul flux ?
ce qui serait top mais pas possible.

Merci
 
WRInaute accro
yann123 a dit:
Code:
eregi("<login>(.*)</login>",utf8_decode( $results[$i+1] ), $login);

Glurps 8O Il n'y a pas des fonctions de décodage XML en PHP? Les regexp c'est amusant deux minutes, mais tu risques d'avoir des surprises un jour ou un autre...

yann123 a dit:
Et j'aimerais que php affiche aléatoirement (mélangé) les résultats des trois flux.

J'avoue que le concept du "mélangé aléatoirement" m'échappe un peu (au niveau intérêt), mais bon... Tu ajoutes un champ random à chaque ligne (je suppose que les tableaux de tableaux ça existe en php?), tu concatènes tes trois listes, et tu tries sur ce champ (aucune idée de comment ça s'écrit en php ça). Je n'ai pas l'habitude du php donc je n'essaierai pas de te pondre le code correspondant, mais en gros:

Code:
pour chaque flux
 pour chaque élément du flux
  resultat[$i][0] = valeur trouvée
  resultat[$i][1] = random
  $i++
 fin
fin

resultat = tri($a->[1] <=> $b->[1],resultat)

pour chaque ligne $i de resultat
 afficher resultat->[$i][0]
fin
Non?

Jacques.
 
WRInaute discret
et avec la fonction shuffle() :
(PHP 4, PHP 5)

shuffle — Mélange les éléments d'un tableau
Description
bool shuffle ( array &$array )

shuffle() mélange les éléments du tableau array.
Source:http://www.php.net/manual/fr/function.shuffle.php
 
WRInaute discret
Bonjour,

et merci de vos réponses.

je commence par télécharger les trois flux individuellement.

$file = "http://xxxxxxxxxxxxxxx";
$file2 = "http://xxxxxxxxxxxxxxx";
$file3 = "http://xxxxxxxxxxxxxxx";

Comment puis-je faire ensuite, pour rassembler ces trois flux dans le même (les uns en dessous des autres puisqu'ils ont exactement la même structure)

$flux = ??????;

et ensuite je travaille avec $flux pour afficher les résultats aléatoirement.

ou encore, mettre les trois flux dans un tableau et travailler ensuite avec le tableau. Ce qui me pose problème c'est de rassembler les données des trois flux.

Merci
 
WRInaute passionné
En utilisant le lecteur de flux universel tu obtiens déjà un flux dans un tableau.

Tu utilises la fonction autant de fois que de tableaux.
Reste à supprimer le channel, et mélanger les éléments du tableau, puis les afficher avec la fonction d'affichage incluse.
 
Discussions similaires
Haut