0 votes

Erreur d'analyse XML : des éléments indésirables après l'élément de document lors de la génération du flux RSS

Je suis en train d'utiliser le script suivant pour générer un flux RSS pour mon site :

getDetails() . $this->getItems();
    }

    private function dbConnect()
    {
        DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD));
    }

    private function getDetails()
    {
        $detailsTable = "rss_feed_details";
        $this->dbConnect($detailsTable);
        $query = "SELECT * FROM ". $detailsTable ." WHERE feed_category = ''";
        $result = mysql_db_query (DB_NAME, $query, LINK);

        while($row = mysql_fetch_array($result))
        {
            $details = '

                            '. $row['title'] .'
                            '. $row['link'] .'
                            '. $row['description'] .'
                            '. $row['language'] .'

                                '. $row['image_title'] .'
                                '. $row['image_url'] .'
                                '. $row['image_link'] .'
                                '. $row['image_width'] .'
                                '. $row['image_height'] .'
                            ';
        }
        return $details;
    }

    private function getItems()
    {
        $itemsTable = "rss_posts";
        $this->dbConnect($itemsTable);
        $query = "SELECT * FROM ". $itemsTable ." ORDER BY id DESC";
        $result = mysql_db_query (DB_NAME, $query, LINK);
        $items = '';
        while($row = mysql_fetch_array($result))
        {
            $items .= '
                         '. $row["title"] .'
                         '. $row["link"] .'
                         ".$row["description"]."".']]>
                     ';
        }
        $items .= '
                 ';
        return $items;
    }

}

?>

La chose déconcertante, c'est que le script fonctionne parfaitement sur mon localhost mais donne l'erreur suivante sur mon serveur distant :

XML Parsing Error: junk after document element
Location: http://mysite.com/rss/main/
Line Number 2, Column 1:Parse error:  syntax error, unexpected T_STRING in /home/studentw/public_html/rss/global-reach/rssClass.php on line 1
^

0voto

Levi Hackwith Points 3898

Vous avez probablement des caractères superflus comme une tabulation ou un espace qui est renvoyé avec le fichier xml sur votre serveur distant. Je recommanderais d'utiliser la mise en tampon de sortie pour nettoyer cela avant d'imprimer le xml.

Mise à jour 1

Voici ce que le site web de PHP dit à propos de la mise en tampon de sortie:

C'est comme comparer des pommes et des oranges.

Au lieu de remplacer les pommes et les oranges, vous pourriez rechercher les espaces et les tabulations.

0voto

Fedir RYKHTIK Points 577

Essayez d'envoyer le bon type de contenu pour la réponse :

Vous pouvez essayer ce qui suit :

header("Content-Type:TYPE");

Où TYPE est l'un des suivants :

text/xml
application/rss+xml
application/rdf+xml
application/atom+xml

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X