Flux RSS

louis1984 Messages postés 344 Statut Membre -  
louis1984 Messages postés 344 Statut Membre -
Bonjour,

Je cherche a faire une partie sur mon site qui affiche les news de differents sites internet (plusieurs flux RSS).

J'aimerais quelquechose comme sur la page d'accueil de www.boursorama.com (en haut a gauche "A LA UNE")

En gros il me faudrait une premiere partie qui affiche la derniere news de l'ensemble des flux (ou encore mieux les dernieres news de l'ensemble des flux par un defilement horizontal). Cette partie doit comprendre un bref resume de la news et la photo de l'article (si il y en a une).

Il faudrait egalement une deuxieme partie en dessous de la premiere partie qui affiche l'historique des news de l'ensemble des flux de la journee par exemple (uniquement l'heure et le titre de l'article).

Est-ce qu'il existe des scripts tout fait qui me permettraient d'avoir un resultat proche de ce que je recherche?

Merci par avance pour votre aide.
A voir également:

53 réponses

louis1984 Messages postés 344 Statut Membre 6
 
Et pourrais-tu m'aider a faire ce que je veux faire uniquement avec ceux en UTF-8?

Tanpis pour les autres! Je reglerai le probleme plus tard..!
0
louis1984 Messages postés 344 Statut Membre 6
 
Aide moi Avion stp !!!
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
	<div class="scroller"> 
		<div class="content">
<?php
$url = 'http://feedmingle.com/rss/10313';

$dom = new DOMDocument();
$dom->load($url);

$i = 1;
foreach($dom->getElementsByTagName('item') as $item) {
	if($i <= 4) {
		echo "\t\t\t".'<div class="section" id="section'.$i.'">'."\n";
		echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
		echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
		echo "\t\t\t".'</div>'."\n\n";
		$i++;
	}
}
?>
		</div> 
	</div>
0
louis1984 Messages postés 344 Statut Membre 6
 
Merci Avion mais je comprends pas où je dois mettre les differents flux RSS...

Peux-tu m'aider?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
C'est déjà fait.
J'ai (à l'aide du site feedmingle) fusionner tous les flux avec le même encodage (UTF-8, il y en avait 2 ou 3 qui sont en ISO-8859-1).
0
louis1984 Messages postés 344 Statut Membre 6
 
Mais est-ce que c'est possible de faire un code avec les flux que je veux sans passer par un site internet externe?
0
louis1984 Messages postés 344 Statut Membre 6
 
Est-ce que je peux par exemple ecrire quelque chose du genre:

<?php
$url = 'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml';
$url = 'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml';
$url = 'http://rss.feedsportal.com/c/499/f/413863/index.rss';
$url = 'http://rss.feedsportal.com/c/499/f/413839/index.rss';
$url = 'http://www.capital.fr/rss2/feed/fil-bourse.xml';
$url = 'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml';

$dom = new DOMDocument();
$dom->load($url);

$i = 1;
foreach($dom->getElementsByTagName('item') as $item) {
if($i <= 4) {
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n";
$i++;
}
}
?>
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Non, tu remplaces à chaque fois ce que contient $url donc le seule flux qui sera parser sera le dernier.
0
louis1984 Messages postés 344 Statut Membre 6
 
Et comment je peux faire? Sans passer par http://feedmingle.com/

Car si http://feedmingle.com/ ne marche pas, mon site ne marchera pas non plus... et aujourd hui http://feedmingle.com/ ne marche pas!
0
louis1984 Messages postés 344 Statut Membre 6
 
J'ai trouver la solution Avion, si ca t'interesse voici le code:

<?php
$urls = array(
'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml',
'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml',
'http://rss.feedsportal.com/c/499/f/413863/index.rss',
'http://rss.feedsportal.com/c/499/f/413839/index.rss',
'http://www.capital.fr/rss2/feed/fil-bourse.xml',
'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml' );

$nb_titres_par_url = 4;
$dom = new DOMDocument();
$i = 0;
foreach($urls as $url) { $dom->load($url); foreach($dom->getElementsByTagName('item') as $item) { $i++;

echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n"; if(($i%$nb_titres_par_url) == 0) { break; } } }
?>

J'ai encore une question pour toi. Donc maintenant j'ai les 4 articles les plus recents qui apparaissent dans le glider.js

Comment faire pour que les article suivant (ceux qui etaient dans le glider.js et qui sont maintenant trop anciens) apparaissent tous le glider.js

En gros j'aimerais faire comme sur boursorama.fr une partie en dessous de "A la une" avec un genre d'historique avec la date et juste le titre de l'article (et si possible la source par exemple "Le Monde" ou "Le Figaro").

Pourrais-tu m'aider a faire ca?
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Le code que tu montres n'est pas ce que tu avais demandé. Ta demande était d'afficher les 4 dernières news parmis tous les flux, pas les 4 dernières news de chaque flux.

Pour créer le second parseur, apprends à utiliser DOM ou SimpleXMLElement.
0
louis1984 Messages postés 344 Statut Membre 6
 
Salut Avion,

Tu as raison je viens de me rendre compte que c'est les 4 flux de chaque flux qui s'affiche.

Tu pourrais m'aider a le corriger comme je le souhaite (les 4 derniers flux de l'ensemble des flux)?

Merci,
0
louis1984 Messages postés 344 Statut Membre 6
 
Avion aide moi STP..
0