mixer plusieurs flux xml

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

mixer plusieurs flux xml

Message le Ven Nov 23, 2007 18:12

Bonjour,

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

Code: Tout sélectionner

    $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


Kmacleod
WRInaute accro
WRInaute accro
 
Messages: 3418
Inscription: Jeu Nov 28, 2002 15:47

Message le Ven Nov 23, 2007 18:22

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

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Ven Nov 23, 2007 18:28

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


Jeviensderio
WRInaute accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

Message le Ven Nov 23, 2007 18:49

Au lieu de faire echo directement on met dans un tableau de tableaux (tableau d'items qui sont des tableaux title, desc, link).

jcaron
WRInaute accro
WRInaute accro
 
Messages: 1222
Inscription: Ven Fév 13, 2004 20:33

Re: mixer plusieurs flux xml

Message le Ven Nov 23, 2007 18:57

yann123 a écrit:
Code: Tout sélectionner
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 écrit: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: Tout sélectionner
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.


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3577
Inscription: Mar Fév 10, 2004 16:40

Message le Ven Nov 23, 2007 19:02

Simple Pie fait ça nativement, me semble-t-il.

Djoudje
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 216
Inscription: Mar Mai 29, 2007 20:36

Message le Ven Nov 23, 2007 22:03

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

yann123
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Lun Avr 11, 2005 21:39

Message le Mar Nov 27, 2007 1:08

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


Jeviensderio
WRInaute accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

Message le Mar Nov 27, 2007 15:33

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.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités