Flux rss avec extention en .php . génant ?

WRInaute passionné
Bonjour

Je créé actuellement un flux rss dynamique pour un annuaire hébergé sous free. Free interdisant le rewriting, je me demande alors si il est génant d'avoir l'extention du fichier rss en .php au lieu de .xml ?

Y a t'il un moyen de convertir ce fichier sans l'utilisation du rewriting et si oui comment ?

Merci
 
WRInaute passionné
Je ne pense pas que ce soit génant, j'avais utilisé cette méthode il y a quelques temps pour un ancien site et cela ne m'avais pas personnalisé (du moment que tu renvoi le bon 'ContentType')

Maintenant, tu peut faire un système de cache : Régulièrement, tu génère en php un flux XML, et tu l'enregistre dans un fichier .xml
 
WRInaute passionné
Le "Content Type" dans un fichier rss ?? Je ne comprend pas !
J'envoie simplement :
Code:
<?xml version="1.0" encoding="iso-8859-15" ?>

	<rss version="2.0">

	<channel>
........

Sinon, comment l'enregistrer dans un fichier .xml avec mise en cache ?? en faisant de l'ecriture genre :
Code:
$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp); 
....
???
Si le faite que l'extention du flux soit en php et que sa ne gene en rien, autant le laisser ainsi ..
Merci
 
WRInaute impliqué
Salut,

Non, en fait tu génère toi-même le flux, ce que fait feedburner, c'est simplement créer un cache, optimiser le code et le normaliser. De plus, les pages générées ressemblent à de véritables pages web qui sont très bien référencées (en plus Google vient de les racheter...)
 
WRInaute passionné
Yes Dharius, j'avais bien comprit. Mais quand tu reference ton flux, tu reference *http://feeds.feedburner.com/nomdemonflux et non *http://tonsite.com/nomdemonflux donc meme si tu le genere toi meme, tu depend d'un site tiers pour l'afficher .
 
WRInaute discret
wullon a dit:
Ha ok, ça ne me fait la "belle page" que sous IE, pas sous Firefox.
Feedburner génère une page HTML reprenant le contenu du fil RSS (raccourci si les articles sont complets dans le fichier RSS), et la sert aux navigateurs qui n'ont pas de page par défaut, c'est à dire à priori tous sauf Internet Explorer 7 et Firefox 2, qui ont leur propre page par défaut pour l'affichage des flux. Tester avec IE 6, Firefox 1.5 ou Opera 9 pour voir la page générée par Feedburner.
 
WRInaute impliqué
ca mrche pas non plus sous IE7 parceque ils l'interprêtent automatiquement comme un fils RSS et IE et Firefox appliquent leur propre "template rss"
 
WRInaute passionné
Dan_A a dit:
Il faut envoyer le bon MIME/TYPE :
header("Content-type: application/rss+xml;");
Et vérifier que le fil soit valide :
http://feedvalidator.org/

Je ne comprend pas ou placer le MIME/TYPE dans mon script php 8O :
Code:
<?php
//Fonction de l'annuaire
include("data_bd_annuaire.php"); 
include("functions.php"); 
$lk = connection_BD(); 

$sql = "SELECT id, id_cat, url_image, titre, description, url FROM $T_sites ORDER BY date_validation DESC 

LIMIT 0,30"; 
$res = send_sql($sql,"trouver les 30 derniers sites"); 

		
mysql_close($lk); 

 echo "<?xml version="1.0" encoding="iso-8859-1" ?>\n
	<rss version="2.0">\n
	<channel>\n
	 <title>***</title>\n
	 <link>***</link>\n
	 <description>***</description>\n
	 <language>fr</language>\n\n";
	 

while($result = mysql_fetch_array($res)) 
{ 
........
........
echo "<item>\n
     	<title>".$titre."</title>\n
	  <link>".$url."</link>\n
	  <description>".$description."</description>\n
         </item>\n\n";
}

echo "</channel>\n
</rss>";
?>
D'autre part quand je passe mon flux au validateur, il me sort des erreurs sur les apostrophes du genre \x92 ou \x85 ...
Un petit coup de pouce ne serait pas de refus svp .
Merci
 
WRInaute discret
header("Content-type: application/rss+xml;"); doit être la première instruction envoyée au navigateur (après mysql_close() par exemple et avant tout echo).
Pour tester la validité du fichier xml et le déboguer, il vaut peut être mieux écrire le fichier xml. Il sera temps ensuite soit de remplacer les écritures fichier par echo soit utiliser la variable contenant le tout soit rediriger vers le fichier xml crée.
 
WRInaute discret
tryan a dit:
Je ne comprend pas ou placer le MIME/TYPE dans mon script php
Si tu déclares cet en-tête via ton script PHP, il faut placer la fonction au tout début (avant toute autre fonction générant du contenu pour le fichier lui-même, je crois).
 
WRInaute passionné
Dan_A a dit:
header("Content-type: application/rss+xml;"); doit être la première instruction envoyée au navigateur (après mysql_close() par exemple et avant tout echo).
Pour tester la validité du fichier xml et le déboguer, il vaut peut être mieux écrire le fichier xml. Il sera temps ensuite soit de remplacer les écritures fichier par echo soit utiliser la variable contenant le tout soit rediriger vers le fichier xml crée.

Oki, voila ce que j'ai fait alors:
Code:
<?php 
//Fonction de l'annuaire 
include("data_bd_annuaire.php"); 
include("functions.php"); 
$lk = connection_BD(); 

$sql = "SELECT id, id_cat, url_image, titre, description, url FROM $T_sites ORDER BY date_validation DESC 

LIMIT 0,30"; 
$res = send_sql($sql,"trouver les 30 derniers sites"); 

       
mysql_close($lk); 
header("Content-type: application/rss+xml;"); //ici le MIME/TYPE *******
 echo "<?xml version="1.0" encoding="iso-8859-1" ?>\n 
   <rss version="2.0">\n 
   <channel>\n 
    <title>***</title>\n 
    <link>***</link>\n 
    <description>***</description>\n 
    <language>fr</language>\n\n"; 
    

while($result = mysql_fetch_array($res)) 
{ 
........ 
........ 
echo "<item>\n 
        <title>".$titre."</title>\n 
     <link>".$url."</link>\n 
     <description>".$description."</description>\n 
         </item>\n\n"; 
} 

echo "</channel>\n 
</rss>"; 
?>
Meme sans le MIME TYPE (si je l'ai bien placé...), sa passe à la validation 8O .
Par contre j'ai toujours des soucis d'encodage avec les apostrophes.
Dan_A je n'ai pas très bien comprit le reste :oops:
Etant sous free (donc pas de rewriting), je ne sais pas comment procéder autrement pour générer mes flux rss autre qu'avec l'extension en .php plutot que xml .. si vous avez une "demo" à me proposer en partant du script ci-dessus je suis preneur !

Merci
 
WRInaute discret
Et en appliquant addslashes aux chaînes contenues dans la base de données?

Pour trouver les erreurs, il faut peut être ouvrir le fil RSS avec Firefox, voir s'il est correctement formé et examiner le code source.
L'extension Sage pour Firefox est aussi un bon test.
 
Discussions similaires
Haut