php ile forumlara sitemap
|
#7628 |
|
|
bilgicep
User is:
Posts: 26
Meslek:
Age: 38
|
merhaba arkada?lar internette dola??rken g?rd?m bunu seditio ya nas?l uyarlar?m acaba sadece forumlar i?in
Kod: <? // ?nce mysql ba?lant? bilgilerini i?eren php dosyam?z? include ediyoruz $mysqlhost="localhost"; $mysqluser="makaleler"; $mysqlpass="12345"; $mysqldatabase="makaleler"; if(! $baglanti=@mysql_connect($mysqlhost, $mysqluser, $mysqlpass)) die("veritabani baglantisi yok."); mysql_select_db($mysqldatabase); // ?kinci olarak sayfa output'unun hangi formatta oldu?unu belirten header komutunu g?nderiyoruz. Sayfam?z xml format?nda olacakt?r. header("Content-Type: text/xml"); // Get metoduyla ald???m?z sayfa verisini $sayfa isimli de?i?kene at?yoruz. if(! isset($_GET[sayfa])) $sayfa=1; else $sayfa=$_GET[sayfa]; //Tarihi belirtiyoruz. Burada format ?nemli. Format d???na ??k?lmamal?. E?er veritaban?n?zda her makalenin giri? tarihi varsa dinamik olarak onu da ekleyebilirsiniz. Burada sabit bir g?n kulland?m. $date="2008-10-21"; // E?er sayfa de?i?keni "index" de?eri ald?ysa output olarak sitemap-index verilecek. if($sayfa=="index"): // ?lk olarak b?t?n makale say?s?n? al?yoruz. $index_sayi=mysql_num_rows(mysql_query("SELECT `id` FROM `makaleler`")); // ?kinci olarak ka? adet index'te ka? adet sitemap listelenece?ini bulmak i?in, toplam rakam? sitemap ba?? url say?s?na b?l?yoruz. Ben genelde veritaban?n? yormamak ve h?zl? y?klenme i?in 6000 kullan?r?m. $index_sayi=ceil($index_sayi / 6000); //Google sitemap-index header'lar?n? giriyoruz. Encoding'i dile?inize g?re de?i?tirebilirsiniz. echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"; // Ana etiketleri girdikten sonra sitemap'lar? d?ng? ile listeliyoruz. for($i=0; $i<$index_sayi; $i++){ echo "<sitemap> <loc>http://www.butunmakaleler.com/sitemap.php?sayfa=".($i+1)."</loc> <lastmod>$date</lastmod> </sitemap>\n"; } // Son olarak sitemap-index sonland?rma etiketini girip index'i bitiriyoruz. echo "</sitemapindex>"; // E?er GET ile ald???m?z sayfa de?i?keni numerik ise bu kodlar ?al??acak. else: // Sayfa numaras?na g?re 6000'lik veri al?n?yor. $sorgu=mysql_query("SELECT `id` FROM `makaleler` ORDER BY `id` ASC LIMIT ".(($sayfa-1)*6000).",6000"); // Sitemap ana xml etiketleri giriliyor. 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\">\n"; // Al?nan 6000'lik par?a d?ng? ile yazd?r?l?yor. while($sonuc=mysql_fetch_assoc($sorgu)): echo " <url> <loc>http://www.butunmakaleler.com/makale.php?id=".$sonuc[id]."</loc> <lastmod>$date</lastmod> <changefreq>daily</changefreq> <priority>0.5</priority> </url>\n"; endwhile; // Son olarak sitemap'? sonland?rma etiketini yazd?r?p dosyay? kapat?yoruz. echo '</urlset>'; endif; ?> |













