Bonjour,
Je me lance dans la lecture de flux RSS en php, j'ai donc commencé par lire ce tuto : http://ghostdogpr.developpez.com/articles/rss/
J'ai deux petits problèmes :
Problème N°1 :
J'ai donc dans ma page actualites.php, exactement cet extrait de code :
Je souhaite récuperer le flux RSS du site 20minutes.fr, hors la description de l'item ne s'affiche pas... (voir http://www.caleoo.com/actualites.php).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?php function lit_rss($fichier,$objets) { // on lit tout le fichier if($chaine = @implode("",@file($fichier))) { // on découpe la chaine obtenue en items $tmp = preg_split("/<\/?"."item".">/",$chaine); // pour chaque item for($i=1;$i<sizeof($tmp)-1;$i+=2) // on lit chaque objet de l'item foreach($objets as $objet) { // on découpe la chaine pour obtenir le contenu de l'objet $tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$i]); // on ajoute le contenu de l'objet au tableau resultat $resultat[$i-1][] = @$tmp2[1]; } // on retourne le tableau resultat return $resultat; } } $rss = lit_rss("http://www.20minutes.fr/rss/une.xml",array("title","link","description","pubDate")); echo '<center><table cellpadding="0" cellspacing="0" class="portal_table" width="100%">'; foreach($rss as $tab) { echo '<tr><td class="header">'.$tab[0].'</td></tr>'; echo '<tr><td>'.$tab[2].' <a href="'.$tab[1].'">Lire tout l\'article</a></td></tr>'; echo '<tr><td><div align=right>posté le '.date("d/m/Y",strtotime($tab[3])).'</div></td></tr>'; } echo '</table></center>'; ?>
Peut être ça vient du site 20minutes.fr ?
Si quelqu'un peut tester ce flux xml
Problème N°2 :
Je souhaite maintenant récupérer le flux RSS du site DailyMotion, donc toujours avec le même script :
Dans ce cas, la lecture de la description fonctionne(voir http://www.caleoo.com/actualites_dm.php), mais à la fin de chaque description apparait les caractères ]]>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php //FLUX RSS 2 function lit_rss2($fichier,$objets) { // on lit tout le fichier if($chaine = @implode("",@file($fichier))) { // on découpe la chaine obtenue en items $tmp = preg_split("/<\/?"."item".">/",$chaine); // pour chaque item for($i=1;$i<sizeof($tmp)-1;$i+=2) // on lit chaque objet de l'item foreach($objets as $objet) { // on découpe la chaine pour obtenir le contenu de l'objet $tmp2 = preg_split("/<\/?".$objet.">/",$tmp[$i]); // on ajoute le contenu de l'objet au tableau resultat $resultat[$i-1][] = @$tmp2[1]; } // on retourne le tableau resultat return $resultat; } } $rss= lit_rss2("http://www.dailymotion.com/rss/fr/featured/1",array("title","link","description","pubDate")); echo '<center><table cellpadding="0" cellspacing="0" class="portal_table" width="100%">'; foreach($rss as $tab) { echo '<tr><td class="header">'.$tab[0].' <a href="'.$tab[1].'"> Voir la video</a></td></tr>'; echo '<tr><td>'.$tab[2].'</td></tr>'; } echo '</table></center>'; ?>
- Voilà j'ai cherché des solutions à ces deux problèmes toute l'après-midi mais en vain, donc je fais appel à vous pour m'aider...
Peut-être que la fonction que j'ai récupéré sur le tutoriel est un peu trop simple et pas assez souple pour accueilir différents formats/structures... de flux RSS
Merci
Partager