Posté : 23-02-2012 14:30
Bonjour à tous,
headlines ne fonctionnant pas correctement, je suis en train de tester d'autres moyens d'obtenir un fil RSS.
J'ai adapté le code suivant, issu de la bibliothèque "fil_le".
<?php
// --------------------------------------------------------
// d'après parse_flux-2 pour lire des fichiers& nbsp;RSS/RDF/Atom
// Dominique WOJYLAC < <a href=" <a href="http://wojylac.free.fr>"" target="_blank" class="noir">http://wojylac.free.fr>"</a> target="_blank" class="noir"> <a href="http://wojylac.free.fr></a>" target="_blank" class="noir">http://wojylac.free.fr></a></a>
// Distribué sous GNU General Public License.
< br />//
// Version 2.1c
// ---------------------------------------------------------
// fonction destinée à nettoyer le texte r écupéré
// que l'on pourrait séparer de ce code&nb sp;en la mettant dans un fichier à inclure
< br />function clean_text($text, $encodage = '') {
if ($encodage == 'utf-8') {
$text = utf8_decode ($text);
}
$avant = array(
'<',
'>',
'"',
'&',
'|@|' // pour traitement correct des caractères spéciaux préalableme nt remplacés (voir plus bas)
);
$apres = array(
'<',
'>',
'"',
'&',
'&#'
);
$text = str_replace($avant, $apres,&nb sp;$text);
return $text;
}
function lit_RSS($flux,$delai,$nbnews,$affichage) {
!include!_once 'rss_read.inc.php';
$rss = new rss_read();
// il est considéré comme n' étant pas en cache on le génére
$data = '';
// caractères parasites pouvant ê tre contenus dans le fils rss et à remp lacer par d'autres
// doit être invoqué avant p arsefile
// cette fonction est optionnelle et ne doit être utilisée que pour cert ains fils.
$avant = array('&#','•');
$apres = array('|@|','-');
$rss -> to_replace_with($avant, $ap res);
// parser le fichier news
$res = $rss -> parsefile($flux );
if ($res) {
$encode = $rss  ;-> get_encoding();
// recupération des données sur le channel
$channel = $rss&nbs p;-> get_channel();
// affichage site,& nbsp;url, description
$data = '< p class=\'flux-RSS\'><a href="'. $channel['link'].'" target="_blank">'. clean_text($channel['title'], $encode).&n bsp;' - RSS fead</a></p>';
// nombre d'items&n bsp;
//$nbnews = $rss&nb sp;-> get_num_items();
// recup array  ;des données
$items = $rss -> get_items();
$data .= '<dl&nb sp; class=\'flux-RSS\'>';
for($i = 0; $i < $nbnews; $i++) {
if&nb sp;($affichage == '1') {
  ; $data .= '<dt>- '.clean_text($items[$i] ['link'], $encode).'</dt>'."\n";
}&nbs p;else {
  ; $data .= '<dt>- <a href="'.$ite ms[$i]['link'].'" target="_blank">'.clean_text($items[$i]['title'],&nbs p;$encode).'</a></dt>'."\n";
}
}
$data .= '</dl&g t;';
} // fin if $rss
return $data;
}
$content = "";
$content .= lit_RSS(' <a href=" <a href="http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1');"" target="_blank" class="noir">http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1');"</a> target="_blank" class="noir"> <a href="http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1');</a>" target="_blank" class="noir">http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1');</a></a>
//echo $content; // débug
?>
et je l'appelle en faisant
!include!#modules/fil_le/lecteurRSS.php
dans le contenu d'un bloc.
ca c'est OK.
L'idéal serait d'appeler ce code comme une fonction en passant les paramètres adéquat
J'ai donc fait ceci
dans header_before.inc
if (file_exists("./modules/fil_le/lecteurRSS.php")) !include!_once("./modules /fil_le/lecteurRSS.php");
et modifié le code comme suit
<?php
// --------------------------------------------------------
// d'après parse_flux-2 pour lire des fichiers& nbsp;RSS/RDF/Atom
// Dominique WOJYLAC < <a href=" <a href="http://wojylac.free.fr>"" target="_blank" class="noir">http://wojylac.free.fr>"</a> target="_blank" class="noir"> <a href="http://wojylac.free.fr></a>" target="_blank" class="noir">http://wojylac.free.fr></a></a>
// Distribué sous GNU General Public License.
< br />//
// Version 2.1c
// ---------------------------------------------------------
// fonction destinée à nettoyer le texte r écupéré
// que l'on pourrait séparer de ce code&nb sp;en la mettant dans un fichier à inclure
< br />function clean_text($text, $encodage = '') {
if ($encodage == 'utf-8') {
$text = utf8_decode ($text);
}
$avant = array(
'<',
'>',
'"',
'&',
'|@|' // pour traitement correct des caractères spéciaux préalableme nt remplacés (voir plus bas)
);
$apres = array(
'<',
'>',
'"',
'&',
'&#'
);
$text = str_replace($avant, $apres,&nb sp;$text);
return $text;
}
function lit_RSS($flux,$delai,$nbnews,$affichage) {
!include!_once 'rss_read.inc.php';
$rss = new rss_read();
// il est considéré comme n' étant pas en cache on le génére
$content = '';
// caractères parasites pouvant ê tre contenus dans le fils rss et à remp lacer par d'autres
// doit être invoqué avant p arsefile
// cette fonction est optionnelle et ne doit être utilisée que pour cert ains fils.
$avant = array('&#','•');
$apres = array('|@|','-');
$rss -> to_replace_with($avant, $ap res);
// parser le fichier news
$res = $rss -> parsefile($flux );
if ($res) {
$encode = $rss  ;-> get_encoding();
// recupération des données sur le channel
$channel = $rss&nbs p;-> get_channel();
// affichage site,& nbsp;url, description
$content = '& lt;p class=\'flux-RSS\'><a href="'. $channel['link'] .'" target="_blank">'. clean_text($channel['title'], $encode) . ' - RSS fead</a></p>';
// nombre d'items&n bsp;
//$nbnews = $rss&nb sp;-> get_num_items();
// recup array  ;des données
$items = $rss -> get_items();
$content .= '<dl class=\'flux-RSS\'>';
for($i = 0; $i < $nbnews; $i++) {
if&nb sp;($affichage == '1') {
  ; $content .= '<dt>- '.clean_text($items[ $i]['link'], $encode).'</dt>'."\n";
}&nbs p;else {
  ; $content .= '<dt>- <a href="'.$ items[$i]['link'].'" target="_blank">'.clean_text($items[$i]['title'],& nbsp;$encode).'</a></dt>'."\n";
}
}
$content .= '</d l>';
} // fin if $rss
return $content;
}
?>
que j'appelle en mettant dans le bloc
function#lit_RSS
params#' <a href=" <a href="http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1'"" target="_blank" class="noir">http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1'"</a> target="_blank" class="noir"> <a href="http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1'</a>" target="_blank" class="noir">http://www.pedigreedatabase.com/german_shepherd_dog/rss.classified_latest','600','5','1'</a></a>
pour le coup, le bloc ne s'affiche même pas. Pas de message d'erreur
Qu'ai-je commis comme erreur?
Merci de votre aide
Message édité par : PhilGuen / 23-02-2012 14:39 |