Page 1 sur 1
flux RSS
Posté : 12 juin 2005, 14:50
par pirquessa
Bonjours
J'essaie de me servir de flux rss tier mais j'ai quelques problèmes :
Un aperçu de ce que ca donne déjà...
Ma page php pour parser le ficher rss :
<?php
# Configuration
$fichier_xml = "http://www.clubic.com/xml/newsjeuxvideo.xml"; // Placez ici l'adresse du flux
$nombre_limite = 20; // Nombre maximum d'éléments à afficher
# Affichage du Flux
$file = fopen($fichier_xml,"r");
if ($file) {
$raw = fread($file,32000);
fclose( $file );
if(eregi("<item>(.*)</item>",$raw,$rawitems)){
$items = explode("<item>", $rawitems[0]);
$nb = count($items);
$maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite;
print "<ul>";
for ($i=0;$i<$maximum;$i++) {
eregi("<title>(.*)</title>",$items[$i+1], $title);
eregi("<link>(.*)</link>",$items[$i+1], $link);
eregi("<pubDate>(.*)</pubDate>",$items[$i+1], $pubdate);
$pubdate = date("[d-m]", strtotime($pubdate[1]));
echo "<li><a href=\"".$link[1]."\" target=\"_blank\">".$pubdate.$title[1]."</a></li>";
}
print "</ul>";
}
}
?>
Le problème, c'est que je t'arrive pas a afficher un certain nombre de news, j'ai ici parametré a 20 et il ne m'en affiche que 4, parfois 5 ...
Voyez vous un problème?
Posté : 12 juin 2005, 16:12
par pirquesssa
petit up
Personne ne vois pkoi ca bugue???
Posté : 14 juin 2005, 17:28
par Mel
Slt,
As-tu essayé d'augmenter la taille du buffer ?
32000 ---> 100000
Mel
Posté : 14 juin 2005, 17:42
par pirquessa
oui, ca m'a rien changé ...

Posté : 14 juin 2005, 18:06
par patbator
hello,
Déjà, à mon avis pour être sur de récupérer tout ton flux XML, tu devrais boucler :
$buffer_xml ='';
while (!feof ($file)) {
$buffer_xml .= fgets($file, 4096);
}
ensuite pour voir d'ou vient ton blem, fait une sortie directe du xml que tu as reçu...
Si ton xml comporte + d'entrée que ce que tu affiches, ton blem viendra probablement des eregs... Et là, il n'y aura que toi qui pourra debuguer
bon courage
Posté : 14 juin 2005, 18:49
par pirquessa
Alors, pour faire simple, ce script je l'ai recuperer et je l'ai UN PEUT modifié.
Je ne comprend pas ce que tu veut dire... , je ne vois pas ou tu veut mettre cette boucle

Posté : 14 juin 2005, 20:19
par naholyr
As-tu accès à php5 sur ton hébergement ?
Edit: ben oui j'suis con, c'est free, tu disposes donc de simpleXml.
http://fr.php.net/simplexml
Edit²: voici une version avec l'utilisation de simpleXml
<?php
# Configuration
$fichier_xml = 'http://www.clubic.com/xml/newsjeuxvideo.xml'; // Placez ici l'adresse du flux
$nombre_limite = 20; // Nombre maximum d'éléments à afficher
# Affichage du Flux
$xml = simplexml_load_file($fichier_xml); // on lit le flux
$items = $xml->xpath('/rss/channel/item'); // on récupère les items
$nb_items = count($items);
$max = min($nb_items, $nombre_limite);
echo '<ul>';
for ($i=0; $i<$max; $i++) {
$item = $items[$i];
$date = date('d-m', strtotime($item->pubDate));
echo '<li><a href="'.$item->link.'" target="_blank">['.$date.'] '.$item->title.'</a></li>';
}
echo '</ul>';
?>
Posté : 17 juin 2005, 17:51
par pirquessa
merci de ton aide, je vais essayer de trouver php5 pour le local parce que je ne m'y était pas mis et du coups, j'ai de belles erreurs...
Merci
Posté : 17 juin 2005, 19:12
par pirquessa
terrible, ca marche bien, un peut long mais ca marche
* [17-06] Des images et une vidéo pour présenter 80 jours
* [17-06] Bet On Soldier : le site francophone
* [17-06] Quoi de neuf en jeux vidéo ce vendredi ?
* [17-06] Quelques images lunaires pour le prochain Kheops
* [16-06] Astronoid : action et vitesse en bêta-test !
* [16-06] HL2 Lost Coast : Valve n'attend pas ATI
* [16-06] Quoi de neuf en jeux vidéo ce jeudi ?
* [16-06] Le Hitman sous les traits de Vin Diesel ?
* [16-06] Au Coeur De Lascaux : développement terminé
* [15-06] VUG se paye bien Swordfish Studios
Juste un petit problème avec les accent....
Tu as une solution ou je f un strig remplace???
EDIT: CA MARCHE
Posté : 17 juin 2005, 21:42
par pirquessa
enfait non, ca marche pas :
echo "<? xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<style type="text/css">
.popperlink { POSITION: absolute; VISIBILITY: hidden; z-index:2;}
</style>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Septi´ Lan Les infos sur vos réseaux!!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" xml:lang="fr" />
En mettant ca en entete surtout le charset=utf8" ben , plus de pb avec le RSS mais j'ai un é sur deux qui deviens ? partout sur la page ....
Que faire???
Posté : 17 juin 2005, 23:46
par Cyrano
Attention, si tu changes le charset, il faut mettre le même dans la balise meta et la balise xml en en-tête.
Posté : 18 juin 2005, 15:08
par pirquessa
j'ai essayé, mais... rien :'(
Posté : 18 juin 2005, 15:43
par Cyrano
As-tu vérifié que ton navigateur utilise bien le bon jeu de cacatères pour lire :
- Firefox : Affichage > Encodage de caractères;
- IE : Affichage : Codage;
Posté : 20 juin 2005, 12:13
par pirquessa
Bon, de tout facon, la solution php5 ca va pas etre possible, mon futur hebergeur fait pas ca...
Une idee pour améliorer :
<?php
# Configuration
$fichier_xml = "http://www.clubic.com/xml/newsjeuxvideo.xml"; // Placez ici l'adresse du flux
$nombre_limite = 20; // Nombre maximum d'éléments à afficher
# Affichage du Flux
$file = fopen($fichier_xml,"r");
if ($file) {
$raw = fread($file,32000);
fclose( $file );
if(eregi("<item>(.*)</item>",$raw,$rawitems)){
$items = explode("<item>", $rawitems[0]);
$nb = count($items);
$maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite;
print "<ul>";
for ($i=0;$i<$maximum;$i++) {
eregi("<title>(.*)</title>",$items[$i+1], $title);
eregi("<link>(.*)</link>",$items[$i+1], $link);
eregi("<pubDate>(.*)</pubDate>",$items[$i+1], $pubdate);
$pubdate = date("[d-m]", strtotime($pubdate[1]));
echo "<li><a href=\"".$link[1]."\" target=\"_blank\">".$pubdate.$title[1]."</a></li>";
}
print "</ul>";
}
}
?>
Merci a vous