özel rss feed aniden artık çalışmıyor

2 Cevap php

Ben sadece birkaç ay için siteye bir şey değişmez ama şimdi aniden rss feed artık çalışmıyor, ne oluyor anlamıyorum.

Ben aşağıdaki kod ile bir php dosyası oluşturun:

header('Content-type: text/xml'); 
include("config/config.inc.php");

    $result = mysqli_query($link, "SELECT * FROM tutorials ORDER BY tutorial_id DESC LIMIT 50");
?>
<rss version="2.0">
    <channel>
         <title>CMS tutorial site</title>
         <description>Bringing you the best CMS tutorials from the web</description>
         <link>http://cmstutorials.org</link>
        <?php 
        while($row = mysqli_fetch_object($result))
        {
            $user = mysqli_fetch_object(mysqli_query($link, "SELECT * FROM user_extra WHERE userid=".$row->user_id.""));
            ?>
            <item>
                <title><?php echo $row->title; ?></title>
                <author><?php echo $user->username; ?></author>
                <description><?php echo $row->description; ?></description>
                <pubDate><?php echo $row->date; ?></pubDate>
                <link>http://cmstutorials.org/view_tutorial.php?tutorial_id=<?php echo $row->tutorial_id; ?></link>
            </item>
            <?php
        }
        ?>
    </channel>
</rss>

Ben phpmyadmin onu yürüterek sorgu kontrol ve çalışır, herhangi bir hata vermez. Ben başlık ve içerik türünü rss etiketini silmek zaman sorgudan her satırı çıktı ama yem şey görüntülemez

Bu besleme bağlantıdır {[(0)}] (ya da http://cmstutorials.org/rss.php)

2 Cevap

Dosya geçerli bir UTF-8 olduğunu, ancak geçerli XML değildir. Ben muhtemelen htmlentities fonksiyonu sayesinde tüm verilerinizi geçmek gerekir düşünüyorum.

 <title><?php echo htmlentities($row->title,ENT_QUOTES,"utf-8"); ?></title>  
 <author><?php echo htmlentities($row->username,ENT_QUOTES,"utf-8"); ?></author>  
 <description><?php echo htmlentities($row->description,ENT_QUOTES,"utf-8"); ?></description>  
 <pubDate><?php echo htmlentities($row->date,ENT_QUOTES,"utf-8"); ?></pubDate>  

Bu işe yaramazsa, "CP1252" veya "iso-8859-1" gibi diğer kodlamalar için "utf-8" değiştirmeyi deneyin.

Tuhaftır, IE8 Firefox bir değişiklik için bir şey söylüyor ayrıntılı bir hata iletisi vermek biridir. Bu Hattı 229 kolon, 32 ve noktaları "Bu besleme hataları nedeniyle görüntülenemiyor" diyor.

<description>We 

Bu% 99.9999 bir kodlama sorundur. (Onaylayıcı olmayan bir UTF-8 karakter hakkında şikayet.) Büyük olasılıkla, veritabanı içeriği bir karakter sakladığınız utf-8 farklı set.

Bir validator ile beslemeyi çalışan daha detaylı bilgi alırsınız.