Encodage RSS

Résolu/Fermé
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
- 21 févr. 2010 à 10:25
bg62
Messages postés
23271
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
3 juillet 2022
- 21 févr. 2010 à 19:20
Bonjour,

J'ai un petit soucis avec mon flux rss, j'obtiens du texte sous cette forme:

" la baisse de l'euro n'ont été prises. La monnaie unique européenne pâtit également des craintes "

j'utilise ca sur ma page:

<!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">
<head>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />


Comment resoudre le probleme?

22 réponses

avion-f16
Messages postés
18796
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
5 juillet 2022
4 401
21 févr. 2010 à 14:20
Un flux RSS (ou Atom, ...) n'est rien d'autre qu'un fichier XML avec quelques consignes (chaque article est représenté par le nœud "item", le nœud "title" contient le titre de l'article, ...).
http://www.sebsauvage.net/comprendre/rss/creer.html
1
bg62
Messages postés
23271
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
3 juillet 2022
2 319
21 févr. 2010 à 11:58
un flux rss ne se code pas de cette manière !!! (il y a des normes à respecter !)
là tu as en train de faire une page ... mal codée en plus !
0
bg62
Messages postés
23271
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
3 juillet 2022
2 319
21 févr. 2010 à 15:30
y a pas mieux .... ;)
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:06
Pouvez-vous me dire ce qui va pas? Voici le code que j'utilise:

<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content">
<?php
$url = 'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml';

$dom = new DOMDocument();
$dom->load($url);

$i = 1;
foreach($dom->getElementsByTagName('item') as $item) {
if($i <= 4) {
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n";
$i++;
}
}
?>
</div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 16:11
Comme l'a expliqué avion : un fichier RSS est du xml.
Ton code est du html, du php et du js.

Donc, rien ne va...
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:12
ok mais je comprends rien.. c'est avion qui m'avait filer ce code.. moi je sais pas programmer..
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 16:14
Tu as du mal comprendre... Avion n'a pas pu te donner ce code pour faire un fil RSS.
Vas voir le lien qu'il a mentionné plus haut !
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:18
je veux pas faire un fil RSS, je veux afficher des articles du journal "Le Figaro" sur mon site grace a leur flux RSS...

Je viens de trouver la solution a mon probleme, il fallait remplacer

<!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">
<head>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />


par


<!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">
<head>
<link rel="stylesheet" type="text/css" href="squelette/index.css" />
<link rel="shortcut icon" href="https://www.pagesjaunes.fr/">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />



Par contre ca m'affiche uniquement le titre et la description de l'article.. comment faire pour que l'internaute puisse cliquer sur l'article et ca le renvoie directement sur la page de "Le Figaro" ou il peut lire l'article en entier?
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:22
En fait je viens de voir que ca resoud le probleme qu'a moitier.. mes articles du Figaro s'affichent bien mais j'ai une autre partie en dessous ou il y a des petits carres a la place des "à"

Une idee?
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 16:47
Changer la déclaration d'encodage n'est pas suffisant. Il faut aussi régler l'éditeur html.
Si tu utilises NotePad++, il faut aller dans le menu format pour configurer cela.
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:52
j'utilise dreamweaver.. comment faire?
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 16:56
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 16:58
ok mais je dois faire quoi? le mettre en UTF-8?? car ca resoudra uniquement le probleme des articles du Figaro que j'integre grace a RSS et pas celui de la partie en dessous avec les petits carres a la place des "à"... et si je mets en ISO-8859-1 ca resoudra le probleme des petits carres a la place des "à" mais pas celui des articles du Figaro...
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 17:10
Si tu codes toutes tes pages en utf-8 (en ayant bien réglé dream), tu n'auras plus aucun problèmes justement !
Sinon, rajoute dans le script php qui récupère le flux xml la fonction utf8_decode http://www.manuelphp.com/php/function.utf8-decode.php
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 17:17
Je viens de regarder et j'ai ca dans la partie avec les petits carres:

<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',utf8_decode($new->description),$auteur);
$auteur = $auteur[1][0];

preg_match_all('#Écrit le: (.+)<br />#isU',utf8_decode($new->description),$date);
$date = strtotime($date[1][0]);

if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;

echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.utf8_decode($titre).'</a> par '.utf8_decode($auteur).'<br />';
}
$i++;
}
?>


J'ai deja utf8_decode donc si je mets ma page en UTF-8 comment modifier le code ci-dessus pour qu'il n'y ait plus les petits carres?
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 17:22
Bouhahahahaha !
Le fichier RSS du fig est en iso... pas en utf-8. Première ligne du fichier :
<?xml version="1.0" encoding="iso-8859-1"?>


Donc, c'est le contraire : faut virer les utf8_decode...
0
louis1984
Messages postés
341
Date d'inscription
jeudi 29 mai 2008
Statut
Membre
Dernière intervention
10 mars 2016
6
21 févr. 2010 à 18:38
1. Je comprends rien... c'est quoi cette histoire de <?xml version="1.0" encoding="iso-8859-1"?> ca sort d'ou? ou tu vois ca, j'ai pas ce truc dans mon code?

2. J'ai supprimer les decode et ca marche toujours pas.. ci-dessous mon code.. j'ai toujours les carres.

<?php
$source = file_get_contents('http://www.monsite.fr/forum/extern.php?action=new&show=10&fid=1&type=RSS');
$xml = new SimpleXMLElement($source);
$i = 0;
foreach($xml->channel->item as $new) {
if($i < 5) {
preg_match_all('#Auteur: (.+)<br />#isU',($new->description),$auteur);
$auteur = $auteur[1][0];

preg_match_all('#Écrit le: (.+)<br />#isU',($new->description),$date);
$date = strtotime($date[1][0]);

if(strlen($new->title) > 20)
$titre = substr($new->title, 0, 20).'...';
else
$titre = $new->title;

echo date('d/m/y à H:i',$date).' : <a href="'.$new->link.'">'.($titre).'</a> par '.($auteur).'<br />';
}
$i++;
}
?>
0
notobe
Messages postés
1952
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
8 juillet 2011
212
21 févr. 2010 à 18:46
1. 1. Je comprends rien... c'est quoi cette histoire de <?xml version="1.0" encoding="iso-8859-1"?> ca sort d'ou? ou tu vois ca, j'ai pas ce truc dans mon code?
C'est la première ligne du fichier xml du fig. Voir le code source https://www.lefigaro.fr/rss/figaro_tauxetdevises.xml Le fichier RSS du fig est encodé en iso.

2. Bon, là c'est moi qui ne comprend plus, ce n'est pas le fig ça : https://www.pagesjaunes.fr/?action=new&show=10&fid=1&type=RSS
C'est quoi l'encodage de cette page ?
0
avion-f16
Messages postés
18796
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
5 juillet 2022
4 401
21 févr. 2010 à 19:01
Tu as été voir sur le lien que je t'ai donné ?
Il faut utiliser PHP pour générer ce XML.
Tu peux le faire à la façon simple avec des echo ou la meilleure avec DOM.
0
bg62
Messages postés
23271
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
3 juillet 2022
2 319
21 févr. 2010 à 19:05
tiens regarde ici :
http://www.unesourisetmoi.info/rss1.xml
fait avec l'aide de sebsauvage, + un fichier .htaccess pour la compatibilité
bon ... mais à faire à la main, du coup je modifs ne sont pas trop féquentes ...
>>> voir le code source !
0
avion-f16
Messages postés
18796
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
5 juillet 2022
4 401
21 févr. 2010 à 19:09
Ici comme il utilise du PHP il n'y a pas besoin du .htaccess pour préciser le content-type :
header('Content-type: text/xml; charset=iso-8859-1');
0
bg62
Messages postés
23271
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
3 juillet 2022
2 319
21 févr. 2010 à 19:14
contenu du .htaccess (pour le flux uniquement):
<Files rss2.xml>
AddCharset ISO-8859-1 .xml
AddType text/xml .xml
</Files>
<Files traduitrss.xslt>
AddCharset ISO-8859-1 .xslt
AddType application/xml .xslt
</Files>

sinon il faut adapter en php pour la génération, mais atom ou ... demandent quand même ceci :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">

etc ...
0