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 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 - 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?
A voir également:

22 réponses

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
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 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
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 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
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 213
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 213
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 213
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 213
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 213
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 213
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 213
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
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 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
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 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
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 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
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