سلام و درود
من فایل xml ساختم با php ولی خوب همونجور که میدونید هر sitemap بیشتر از 50.000 تا نمیتونه لینک داشته باشه و نیاز داره که برای ادامه از 50.000 تا به بعد یک sitemap جدید ایجاد بشه
من با این کد sitemap رو میسازم :
<?php
//ابتدا یک فایل با نام sitemap.xml بسازید.
//ابتدا فایل را دریافت کرده و یک بار محتویات آن را پاک می کنیم
$file = "sitemap.xml";
chmod($file, 0755);//تنظیم مجوز های ویرایش
$fileHandle = fopen($file, 'w+')//استفاده از متد w+
or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
$empty = "";//متغیر برابر خالی
//نوشتن در فایل
$stringData = $empty;
fwrite($fileHandle, $stringData);
fclose($fileHandle);
//باز کردن مجدد فایل
$file = "sitemap.xml";
chmod($file, 0755);
$fileHandle = fopen($file, 'a')//این بار با متد a
or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
$start = "<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd' xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n";
//نوشتن فایل با متد a
$stringData = $start;
fwrite($fileHandle, $stringData);
//صفحه نخست
$home = "<url><loc>http://hotkhabar.ir/</loc></url>\n";
//نوشتن
$stringData = $home;
fwrite($fileHandle, $stringData);
//قبل از اتصال به پایگاه داده باید اطلاعات اتصال را تعریف کنید
//دریافت اطلاعات پست ها از دیتابیس و تبدیل به لینک
mysql_connect('localhost','root','') or die("not");
mysql_select_db('news') or die("not DB");
mysql_query('SET NAMES utf8');
$sql = mysql_query('SELECT * FROM tbl_news order by ID desc LIMIT 49998');
while($row = mysql_fetch_assoc($sql)){
$link = $row['textlink'];
$category = $row['Category'];
$category = str_replace(' ','-',$category);
$link = "<url>
<loc>http://site.ir/اخبار-$category/".urldecode($link).".html</loc>
</url>\n";
//نوشتن
$stringData = $link;
fwrite($fileHandle, $stringData);
}
$end = "</urlset>";//بستن نقشه سایت
//نوشتن
$stringData = $end;
fwrite($fileHandle, $stringData);
fclose($fileHandle);
?>
این درست کار میکنه
ولی اگه بخوام وقتی به 50.000 تا رسید مثال خودش یک فایل جدید ایجاد کنه و بقیش رو تو اون بریزه
ولی مکانیزمش رو نمیدونم که باید چیکار کنم
اگه راه حل دیگه ای هم دارید راهنمایی کنید ممنون میشم