sitemapblock.inc.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. if (!defined('IN_DISCUZ')) {
  3. exit('Access Denied');
  4. }
  5. ini_set('memory_limit','512M');
  6. if (empty($_GET['p']) || $_GET['p'] != baidu_get_plugin_setting('sppasswd')) {
  7. baidu_header_status(404);
  8. return 1;
  9. }
  10. $client_etag = !empty($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false;
  11. if ($client_etag) {
  12. header('HTTP/1.1 304 Not Modified');
  13. header('ETag: ' . $client_etag);
  14. }
  15. $count = baidu_get_plugin_setting('blockcount');
  16. //清掉钩子
  17. $_G['setting']['plugins']['func'] = array();
  18. header('ETag: ' . $count);
  19. header('Content-Type: text/xml');
  20. echo '<?xml version="1.0" encoding="UTF-8"?><urlset>';
  21. $forumlist = baidu_get_forum_list();
  22. $itemCount = 0;
  23. foreach ($forumlist as $forum) {
  24. $output = baidu_forum_body_build($forum);
  25. if ($output === false) {
  26. continue;
  27. }
  28. $itemCount ++;
  29. echo $output;
  30. flush();
  31. }
  32. echo '</urlset>';
  33. $timeLost = intval(1000 * (microtime(true) - $_G['starttime']));
  34. C::t('#baidusubmit#baidusubmit_sitemap')->update_by_sid($sitemap['sid'], array('item_count' => $itemCount, 'file_size' => $fileSize, 'lost_time' => $timeLost));
  35. C::t('#baidusubmit#baidusubmit_setting')->update('blockcount', $itemCount);
  36. baidu_update_url_stat($itemCount);