网站知识您当前的位置:首页 > 新闻资讯 > 网站知识 >

PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]

发布时间:2020-05-29   作者:洛阳网站建设   点击:

需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps

以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可

代码:

PHP Code复制内容到剪贴板
 
  1. if(PHP_SAPI != 'cli')   
  2. {   
  3.     header('location: sitemaps.xml');   
  4.     exit;   
  5. }   
  6. define('SITEMAP_SIZE', 10000);  //sitemaps中最大输出数量   
  7. define('MODEL_SIZE', 3000);     //每个模型中最大输出数量   
  8. $model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型   
  9.     
  10. define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);   
  11. include PHPCMS_PATH.'/phpcms/base.php';   
  12.     
  13. $param = pc_base::load_sys_class('param');   
  14.     
  15. $model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr;   
  16.     
  17. $map = array();   
  18. foreach ($model_arr as $modelid => $model)   
  19. {   
  20.     $tablename = $model['tablename'];   
  21.         
  22.     $db = pc_base::load_model('content_model');   
  23.     $db->set_model($modelid);   
  24.         
  25.     if($db->count() && count($map) < SITEMAP_SIZE)   
  26.     {   
  27.         $order = 'id desc';   
  28.         $arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order);   
  29.         $map = array_merge($map, $arc);   
  30.     }   
  31. }   
  32.     
  33. /* 遍历生成 */  
  34. $html = '  
  35. ';   
  36.     
  37. foreach ($map as $row)   
  38. {   
  39.     if(emptyempty($row) || emptyempty($row['url'])) continue;   
  40.         
  41.     $date = date("Y-m-d", $row['updatetime']);   
  42.     $url = str_replace(array('&', ''', '"', '>', '<'), array('&', ''', '"', '>', '<'), $row['url']);   
  43.     $html .= "   
  44.   
  45.         {$url}   
  46.         {$date}   
  47.         daily   
  48.         0.8   
  49. ";   
  50. }   
  51.     
  52. $html .= '';   
  53. file_put_contents('./sitemaps.xml', $html);   
  54. ?>  

当然windows一样可以使用,通过计划任务与dos命令完成 。

网站关键词: phpcms
  • 添加微信好友

  • 扫一扫访问手机网站

  • 在线客服
  • 技术支持
  • 售后服务
  • 微信号:15037966801