fliaigre 913
| Posté : 15-03-2012 13:15
Avec ta nouvelle version ça ne fonctionne pas. Rien n'est décodé donc j'ai remis celle-ci :
<?php
// --------------------------------------------------------
// d'après parse_flux-2 pour lire des fichiers RSS/RDF/Atom
// Dominique WOJYLAC < http://wojylac.free.fr>
// Distribué sous GNU General Public License.
//
// Version 2.1c
// ---------------------------------------------------------
// fonction destinée à nettoyer le texte récupéré
// que l'on pourrait séparer de ce code&n bsp;en la mettant dans un fichier à in clure
// fonction destinée à nettoyer le texte récupéré
// que l'on pourrait séparer de ce code&n bsp;en la mettant dans un fichier à in clure
function clean_text($text, $encodage = '',$long) {
if ($encodage == 'utf-8') {
$text = utf8_decode($text);
}
$avant = array(
'<',
'>',
'"',
'&',
'|@|' // pour traitement correct& nbsp;des caractères spéciaux préalablement remplacés&nb sp;(voir plus bas)
);
$apres = array(
'<',
'>',
'"',
'&',
'&#'
);
$text = substr(str_replace($avant, $apres, $t ext),0,$long).' ...';
return $text;
}
function lit_RSS($flux,$delai,$nbnews,$affichage,$long,$block_title)&nbs p;{
// chemin relatif vers le dossier cache
// le répertoire "cache" doit être autorisé& nbsp;en écriture
// ne pas oublier / Ã la fin
$dir_cache = './cache/';
// nom du fichier mis en cache
//$file_cache = 'flux.html';
$url_explode = explode('/',$flux);
$file_cache = ($url_explode[2]).'.html';
if (!is_dir($dir_cache)) {
exit ('Répertoire cache "'.$dir_cache.'" inex istant !');
}
!include!_once('rss_read.inc.php');
$rss = new rss_read();
//$flux = ' http://npds.org/backend.php'; //adresse du flux passée par la fonction.
// voir la doc pour cette fonction
$date_modif = $rss -> get_last_modified($flux);
if ($date_modif > 0) {
// le serveur distant a retourné u ne date de dermière modification
// on remettra à jour immédiateme nt en cas de modification postérieure
// Ã la date du fichier en&nb sp;cache
$delai = 0;
}
else {
// on impose la mise à jour&n bsp;avec une certaine periodicité
$date_modif = time();
// le delai entre deux rafraichissements en secondes à régler suivant le type de fil ici 2 heures
//$delai = 600; //délai passé par  ;la fonction
}
// le fichier est-il en cache et suffisamm ent jeune
$file_cache = $dir_cache.$file_cache;
$en_cache = file_exists($file_cache);
if ($en_cache) {
$en_cache = ($date_modif < filemtime($file _cache) + $delai);
}
if (!$en_cache) {
// il est considéré comme n'étant&nbs p;pas en cache on le génére
$content = '';
// caractères parasites pouvant être c ontenus dans le fils rss et à remplace r par d'autres
// doit être invoqué avant parsefile
< br /> // cette fonction est optionnelle et&nbs p;ne doit être utilisée que pour certains fils.
$avant = array('&#','•');
$apres = array('|@|','-');
$rss -> to_replace_with($avant, $apres);
// parser le fichier news
$res = $rss -> parsefile($flux);
if ($res) {
$encode = $rss -> get_encoding ();
// recupération des données sur le channel
$channel = $rss -> get_channel ();
// nombre d'items
if ($nbnews > $rss -> get_num_items()) $nbnews = $rss -> get_num_it ems(); // nombre de news à afficher pa ssé par la fonction
// recup array des données
$items = $rss -> get_items();
if ($items) {
$content .= '<ul>';
for($i = 0; $i <&n bsp;$nbnews; $i++) {
if ($affichage ==&n bsp;'1') {
$content .=& nbsp;'<li> '.$items[$i]['link'].'</li>'."\n"; // pou r le RSS "bizarre" de PedigreeDataBase
} else {
$content .=& nbsp;'<li> <a href="'.$items[$i]['link'].'" target="_bl ank" class="noir" alt="'.$items[$i]['title'].'" title="'.$items[$i]['title '].'">'.clean_text($items[$i]['title'], $encode, $long).'</a> ;</li>'."\n";
}
}
$content .= '</ul>';
}
// affichage site, url, descripti on
$content .= '<div><a hr ef="'. $channel['link'].'" target="_blank" class="noir"> Lire la suite ...</a></div>';
} // fin if $rss
$fd = fopen($file_cache, "w");
fputs($fd, $content);
fclose($fd);
} else {
//Ouverture du fichier en lecture seule
$handle = fopen($file_cache, 'r');
//Si on a réussi à ou vrir le fichier
if ($handle)
{
$content = '';
//Tant que l'on est p as à la fin du fichier
while (!feof($handle))
{
//On lit la li gne courante
$content .= fgets($ handle);
}
//On ferme le fichier
fclose($handle);
} else {
$content = 'Erreur de  ;lecture du fichier en cache';
}
} // fin if !$en_cache
themesidebox($block_title,$content);
} // fin de fonction
?>
Celle-ci décode le texte mais pas la bulle.
Je suis sur REvolution 10.02 encodée en charset=ISO-8859-1.
Je te joins par mail. |