PHP ile bir XML site haritası oluşturma

1 Cevap php

Ben otomatik güncelleme olacak bir site haritası oluşturmak için çalışıyorum. Benim RSS beslemesi ile benzer bir şey yaptık, ama bu site haritası çalışmak reddediyor. Sen http://designdeluge.com/sitemap.xml Ben asıl sorun onun PHP kodu tanımaması olduğunu düşünüyorum canlı izleyebilirsiniz. İşte tam kaynak var:

 <?php 


include 'includes/connection.php';

header("Content-type: text/xml");

echo '<?xml version="1.0" encoding="UTF-8" ?>';

?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">

    <url>
        <loc>http://designdeluge.com/</loc>
        <lastmod>2010-04-20</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.00</priority>
    </url>

    <url>
        <loc>http://designdeluge.com/about.php</loc>
        <lastmod>2010-04-20</lastmod>
        <changefreq>never</changefreq>
        <priority>0.5</priority>
    </url>

    <?php

    $entries = mysql_query("SELECT * FROM Entries");

    while($row = mysql_fetch_assoc($entries)) {
    $title = stripslashes($row['title']);
    $date = date("Y-m-d", strtotime($row['timestamp']));

    echo "

    <url>
        <loc>http://designdeluge.com/".$title."</loc>
        <lastmod>".$date."</lastmod>
        <changefreq>never</changefreq>
        <priority>0.8</priority>
    </url>";

 } ?>

</urlset>

Sorun dinamik URL (DB çekti örneğin olanlar) üretiliyor değildir ve site haritası doğrulamak olmayacak olmasıdır. Teşekkürler!

EDIT: Şu anda, ben sadece kod kendisi çalışma almak için çalışıyorum. Ben benim yerel test sunucusu üzerinde bir PHP dosyası olarak kurdunuz. Yukarıdaki kodu kullanılıyor. Şu anda, hiçbir şey ekranda veya kaynak hiçbir şey gösterir. Ben bir sözdizimi hatası yapılmış düşünüyorum, ama bir şey bulamıyorum. Tüm Yardım takdir!

EDIT 2: Tamam, ben o çocuklar dizildi var. Görünüşe göre, PHP ile xml deklarasyonu yankı vardı. Nihai Yukarıdaki kod nakledilir. Yardımlarınız için teşekkürler!

1 Cevap

Eğer sitemap.xml o oluşturulan oluyor bir göz atın eğer (using view source, in your browser, for example), bunu göreceksiniz:

<?php header('Content-type: text/xml'); ?>
<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http:/
...

<?php, bu çıkış içinde mevcut gösterir PHP code is not interpreted.


This is probably because your webserver doesn't recognize .xml as an extension of files that should contain PHP code.

En az iki olası çözümler:

  • Sunucunuzu yeniden yapılandırın, böylece XML dosyaları PHP yorumlayıcı geçmesi (might not be such a good idea : that can cause problems with existing files ! )
  • sitemap.php, örneğin için, senin sitemap uzantısını değiştirmek, böylece bu sunucu tarafından yorumlanır.


I would add another solution :

  • Kodu içeren bir sitemap.php dosya var
  • Ve use a RewriteRule böylece sitemap.xml URL aslında sitemap.php dosyasına işaret

Bunun üzerine, güzel sitemap.xml URL, (required ? ) olacak, ancak kod sitemap.php olacak gibi, o yorumlanır alırsınız.

Bkz Apache's mod_rewrite .