Probléme d'affichage de flux rss dans une page php

Eléphant du PHP | 451 Messages

30 juin 2008, 18:08

Bonjour,

J'utilise une classe de phpsource pour les flux rss le script me génère bien mon fichier xml mais quand je veux l'afficher dans ma page rss1.php j'ai le message d'erreur suivant:
Erreur d'analyse XML : instruction de traitement XML pas au début d'une entité externe
Emplacement : http://www.monsite.com/blog/rss1.php
Numéro de ligne 1, Colonne 2 : <?xml version="1.0" encoding="ISO-8859-1" ?>
--------^
Voici le code php de ma page rss1.php
<?php
	require_once('includes/class/Rss/RSSFeed.class.php');
	include('includes/class/class_mysql.php');
	include('includes/config.php');
	include('includes/function/constant.php');
	
	$db = new Sql();
	$db->sql_connect($host, $login_host, $pass_host, $hostname);


	try
	{
		// Create the new instance of the RSS Feed
		$rssFeed = new RSSFeed('ISO-8859-1');
		// Activate the string protection
		$rssFeed->setProtectString(true);
		// Set the feed title
		$rssFeed->setTitle('..:: Le blog ::..');
		// Set the feed description
		$rssFeed->setDescription('Les fluxs RSS du blog');
		// Set the feed link
		$rssFeed->setLink('http://www.monsite.com/blog/');
		// Set the feed publication date
		$rssFeed->setPubDate('2007-08-01');
		// Set the feed last build date
		$rssFeed->setLastBuildDate(date('Y-m-d'));
		// Set the feed copyright
		$rssFeed->setCopyright('(C) Copyright 2008 www.monsite.com');
		
		// Adding items
		$request = mysql_query("select * from ".$prefix.TABLE_POST." order by post_id desc limit 10");
		
		while($row = mysql_fetch_object($request))
		{
			// Creating a new feed item
			$rssItem = new RSSFeedItem();
			$rssItem->setTitle($row->post_title);
			$rssItem->setDescription($row->post_extrait);
			$rssItem->setLink('http://www.monsite.com/blog/?p=post&idtem='. $row->post_rewriting);
			$rssItem->setGuid('http://www.monsite.com/?p=post&idtem='. $row->post_rewriting, true);
			$rssItem->setComments('http://www.monsite.com/?p=post&idtem='. $row->post_rewriting .'#comments');
			
			// Add the item to the feed
			$rssFeed->appendItem($rssItem);
		}
		
		// Save the feed
		$rssFeed->save();
		
		// SQL connection closing
		mysql_close();
		
		// Send headers to the browser
		header('Content-Type: text/xml; charset=ISO-8859-1');
		// Display the feed
		$rssFeed->display();
	}
	catch(RSSFeedException $e)
	{
		echo $e->getErrorMessage();	
	}
?>
Quand j'enlève la ligne:
header('Content-Type: text/xml; charset=ISO-8859-1');
Je n'ai plus l'erreur mais j'ai une page blanche avec tout le texte en vrac.

Je ne trouve pas de solution donc si quelqu'un avait une solution elle serait la bien venu.

Merci d'avance...

Mammouth du PHP | 1668 Messages

30 juin 2008, 20:02

Tu as essayé d'inscrire le résultat dans un fichier PHP ? Puis de l'ouvrire indépendamment de PHP ?
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphant du PHP | 451 Messages

30 juin 2008, 20:06

C'est à dire? Je comprends pas trop ce que tu me dis.

Mammouth du PHP | 1668 Messages

30 juin 2008, 20:21

En fait, je cherche à savoir d'où viens l'erreur, si lorsque tu as écrit le xml dans un fichier, il s'affiche mal, c'est que ça viens de la procédure, si non ça vient du header ou de l'affichage...

Je procède par élimination :lol:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphant du PHP | 451 Messages

30 juin 2008, 20:42

Ca génère bien un fichier xml et l'affichage du fichier xml se fait parfaitement il y a aucune erreur dans le fichier xml.

Oui c'est le header qui bloque tout mais si je l'enlève l'affichage se fait en tas de ... :D