Page 1 sur 1
page xml : retour à la ligne
Posté : 21 févr. 2008, 03:19
par kluck
Bonjour,
j'ai un probleme avec l'affichage de mon flux rss si mon texte contient des <br />. le xml ne semble pas l'interpréter.
Lors de l'ajout d'une news je fais un nl2br sur ma variable qui va contenir le texte
savez vous comment faire pour gérer les retours à la ligne sur une page xml ?
ah oui autre précision si on un htmlentities sur la variable contenu et que l'on tape un "é" ben la page refuse de s'afficher donc j'ai laissé tomber cette fonction.
Posté : 21 févr. 2008, 09:00
par zeus
Quelle est l'aspect de ton flux XML ?
Est-ce que tu utilises des balises CDATA ?
Posté : 21 févr. 2008, 18:26
par kluck
voici on flux, non je n'ai pas de balise CDATA.
Je pense que peut etre que le problème ne vient pas du flux mais du textarea que j'utilise.
Admettons qu'une personne tape à l'infini un caractère sans taper sur la touche entrée, et bien dans le flux rss le texte va dépasser la bordure blanche qui est couramment utilisée.Par contre si cette personne tape sur entrée, le texte reste dans l'espace réservé au flux( partie blanche).
Est ce qu'il aurait un moyen pour ne pas que le texte dépasse la bordure blanche du flux rss ?
Une propriété à mettre sur le textarea peut etre ?
Code : Tout sélectionner
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Titre du flux</title>';
$xml .= '<link>http://www.monsite.com</link>';
$xml .= '<description>Description du flux</description>';
$xml .= '<copyright> MonSite 2005</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= ' <title>Titre du flux</title>';
$xml .= ' <url>chemin absolu de l\'image http://.... (pas plus de 88px de haut)</url>';
$xml .= ' <link>http://www.monsite.com</link>';
$xml .= '</image>';
$today= date("D, d M Y H:i:s +0100");
$xml .= '<pubDate>'.$today.'</pubDate>';
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= '<description>'.$contenu.'</description>';
$xml .= '<pubDate>'.$datephp.'</pubDate>';
$xml .= '</item>';
$xml .= '</channel>';
$xml .= '</rss>';
Posté : 21 févr. 2008, 19:35
par Hubert Roksor
Je crois qu'il y a méprise, un RSS n'a pas de représentation graphique. RSS n'utilise pas HTML et <br /> n'a aucune signification en XML. Les sauts de lignes, en XML, sont représentés par... des sauts de lignes. À toi ensuite d'utiliser nl2br() si tu veux les convertir et les afficher en HTML.
Pareil pour cette bordure blanche, comment est-elle créée ? Une chose est sûre, RSS n'a aucun contrôle sur la façon dont il est affiché.
Posté : 21 févr. 2008, 23:32
par Victor BRITO
Code : Tout sélectionner
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Titre du flux</title>';
$xml .= '<link>http://www.monsite.com</link>';
$xml .= '<description>Description du flux</description>';
$xml .= '<copyright> MonSite 2005</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= ' <title>Titre du flux</title>';
$xml .= ' <url>chemin absolu de l\'image http://.... (pas plus de 88px de haut)</url>';
$xml .= ' <link>http://www.monsite.com</link>';
$xml .= '</image>';
$today= date("D, d M Y H:i:s +0100");
$xml .= '<pubDate>'.$today.'</pubDate>';
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= '<description>'.$contenu.'</description>';
$xml .= '<pubDate>'.$datephp.'</pubDate>';
$xml .= '</item>';
$xml .= '</channel>';
$xml .= '</rss>';
Avec un code pareil, ce que tu peux faire, c'est ajouter à la fin de chaque chaîne une chaîne à doubles guillemets contenant le marqueur de retour à la ligne, comme suit :
$xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= '<rss version="2.0">'."\n";
// etc.
Posté : 17 nov. 2008, 12:39
par ptimushu
voici on flux, non je n'ai pas de balise CDATA.
Je pense que peut etre que le problème ne vient pas du flux mais du textarea que j'utilise.
Admettons qu'une personne tape à l'infini un caractère sans taper sur la touche entrée, et bien dans le flux rss le texte va dépasser la bordure blanche qui est couramment utilisée.Par contre si cette personne tape sur entrée, le texte reste dans l'espace réservé au flux( partie blanche).
Est ce qu'il aurait un moyen pour ne pas que le texte dépasse la bordure blanche du flux rss ?
Une propriété à mettre sur le textarea peut etre ?
Code : Tout sélectionner
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Titre du flux</title>';
$xml .= '<link>http://www.monsite.com</link>';
$xml .= '<description>Description du flux</description>';
$xml .= '<copyright> MonSite 2005</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= ' <title>Titre du flux</title>';
$xml .= ' <url>chemin absolu de l\'image http://.... (pas plus de 88px de haut)</url>';
$xml .= ' <link>http://www.monsite.com</link>';
$xml .= '</image>';
$today= date("D, d M Y H:i:s +0100");
$xml .= '<pubDate>'.$today.'</pubDate>';
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= '<description>'.$contenu.'</description>';
$xml .= '<pubDate>'.$datephp.'</pubDate>';
$xml .= '</item>';
$xml .= '</channel>';
$xml .= '</rss>';
utilise <![CDATA[<br >]]> qui creer des <br /> sans générer d'erreur
Posté : 17 nov. 2008, 13:43
par Victor BRITO
Puisque le XML ressemble à du RSS 2.0, on peut, à la rigueur, se contenter des entités HTML : <br /> pour <br />.
Posté : 18 nov. 2008, 02:57
par Hywan
Hey

,
Puisque le XML ressemble à du RSS 2.0 […]
Oh ! Il est fort Victor … très fort

.