if ($fileSizeCheck >= 1024*1024*8) { $sizesplitsitemap = true; break; } $fileSize = $fileSizeCheck; echo $output; flush(); } echo '</urlset>'; //分裂数据 if ($sizesplitsitemap || ($indexsplitsitemap && $thread['lastpost']<$endTime)) { //超过sitemap文件限制进行分裂 $sp = baidu_get_sitemap(2, $startTime, $endTime); if ($sp) { //计算裂变 $newStartTime = $thread['lastpost']; //裂变步长 $stepLen = intval(($newStartTime - $startTime - 1) * 0.3); $curTime = time(); //只裂变到当前时间 $count = ceil(($curTime - $newStartTime) / $stepLen); for ($i=0; $i<$count; $i++) { $_xstart = $newStartTime + $stepLen * $i; $_xend = $_xstart + $stepLen - 1; if ($_xend > $curTime) { $_xend = $curTime; } $url = "sitemapinc&start={$_xstart}";
header('Content-Type: text/xml'); echo '<?xml version="1.0" encoding="UTF-8"?><urlset>'; $forumlist = baidu_get_forum_list(); foreach ($threadlist as $tid => $thread) { $output = baidu_schema_body_build($forumlist[$thread['fid']], $thread); if ($output === false) { continue; } $fileSizeCheck = $fileSize + strlen($output); $itemCountCheck = $itemCount + 1; // split sitemap file if ($fileSizeCheck >= 1024 * 1024 * 8 || $itemCountCheck > 5000) { // 并发问题 $sp = baidu_get_sitemap(1, $start_tid, $end_tid); if ($sp) { $new_start_tid = $thread['tid']; $past_tid = $new_start_tid - $start_tid - 1; $count = ceil(($end_tid - $new_start_tid) / $past_tid); for ($i = 0; $i < $count; $i++) { $_xstart = $new_start_tid + $past_tid * $i; $_xend = $_xstart + $past_tid - 1; if ($_xend > $end_tid) { $_xend = $end_tid; } $url = "sitemapall&start={$_xstart}"; C::t('#baidusubmit#baidusubmit_sitemap')->add($url, 1, $_xstart, $_xend); }