站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > CMS 教程 >

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

2018-06-03 14:08 | 来源:易采源码网 | 编辑:admin |

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

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

代码:
PHP Code复制内容到剪贴板

  1. <?php    /**  
  2.  *  sitemap.php PHPCMS V9 sitemaps入口    *  
  3.  * @copyright           (C) 2015-2018 piaoyun.cc    * @license             http://piaoyun.cc  
  4.  * @lastmodify          2015-05-06    */  
  5. if(PHP_SAPI != 'cli')    {   
  6.     header('location: sitemaps.xml');        exit;   
  7. }    define('SITEMAP_SIZE', 10000);  //sitemaps中最大输出数量   
  8. define('MODEL_SIZE', 3000);     //每个模型中最大输出数量    $model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型   
  9.      define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);   
  10. include PHPCMS_PATH.'/phpcms/base.php';        
  11. $param = pc_base::load_sys_class('param');        
  12. $model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr;        
  13. $map = array();    foreach ($model_arr as $modelid => $model)   
  14. {        $tablename = $model['tablename'];   
  15.              $db = pc_base::load_model('content_model');   
  16.     $db->set_model($modelid);            
  17.     if($db->count() && count($map) < SITEMAP_SIZE)        {   
  18.         $order = 'id desc';            $arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order);   
  19.         $map = array_merge($map, $arc);        }   
  20. }        
  21. /* 遍历生成 */   $html = '<?xml version="1.0" encoding="utf-8"?>  
  22. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';        
  23. foreach ($map as $row)    {   
  24.     if(emptyempty($row) || emptyempty($row['url'])) continue;            
  25.     $date = date("Y-m-d", $row['updatetime']);        $url = str_replace(array('&', '\'', '"', '>', '<'), array('&', ''', '"', '>', '<'), $row['url']);   
  26.     $html .= "    <url>   
  27.         <loc>{$url}</loc>            <lastmod>{$date}</lastmod>   
  28.         <changefreq>daily</changefreq>            <priority>0.8</priority>   
  29. </url>";    }   
  30.      $html .= '</urlset>';   
  31. file_put_contents('./sitemaps.xml', $html);    ?>  
当然windows一样可以使用,通过计划任务与dos命令完成 http://www.jb51.net/article/86202.htm。

  • dedecms教程:定时生成站点地图sitemap.xml-DedeCms教程
  • DedeCMS生成html慢的解决办法-DedeCms教程
  • 为dedecms增加二维码功能的实现代码-DedeCms教程
  • 织梦dedecms编辑器中增加代码运行框-DedeCms教程
  • DEDE5.7热门标签代码调用详解-DedeCms教程
  • dedecms页面获取会员状态的代码-DedeCms教程
  • dedecms 栏目目录用首字母生成的方法-DedeCms教程
  • 织梦dedecms5.7生成首页提示404错误解决办法-DedeCms教程
  • 织梦DEDECMS视频模型重新生成时没有aid-DedeCms教程
  • dedecms实现将表单订单发送到邮箱实例代码-DedeCms教程
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号