|
PhilGuen 995
| |
fliaigre 916
| Posté : 13-03-2012 13:57
OK ça marche, juste un pb avec l'affichage des caractères accentués avec le retour de NPDS
Pour l'AFSAPS ça marche. Le top serait d'avoir le texte complet dans une bulle comme avec headlines.
Vraiment bravo. |  Profil www Citation
|
|
PhilGuen 995
| |
fliaigre 916
| Posté : 13-03-2012 18:18
Tu me diras quand ce sera prêt.
Ceci me sera très utile pour relayer les alertes de l'AFSSAPS.
Vraiment merci. |  Profil www Citation
|
|
fliaigre 916
| |
PhilGuen 995
| |
fliaigre 916
| Posté : 13-03-2012 21:07
Tu as une petite erreur au début du script :
function clean_text($text, $encode = '', $long)  ;{
if ($encodage == 'utf-8') {
$text = utf8_decode ($text);
}
au lieu de
function clean_text($text, $encodage = '',$long) {
< br /> if ($encodage == 'utf-8') {
$text = utf8_decode ($text);
}
Après correction le lien est bien decodé mais pas le texte de la bulle. Sinon c'est super. |  Profil www Citation
|
|
PhilGuen 995
| |
fliaigre 916
| |
PhilGuen 995
| |
fliaigre 916
| 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. |  Profil www Citation
|
|
Aller à la page : [ 1 | 2 | 3 | 4 ] |