服务器之家:专注于服务器技术及软件下载分享
分类导航

DEDECMS|帝国CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|苹果CMS|极致CMS|CMS系统|

服务器之家 - 建站程序 - PHPCMS - PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]

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

2019-10-21 13:50phpcms教程网 PHPCMS

这篇文章主要介绍了PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版],需要的朋友可以参考下

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

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

代码:

PHP Code复制内容到剪贴板

  1. <?php   

  2. /** 

  3.  *  sitemap.php PHPCMS V9 sitemaps入口  

  4.  *  

  5.  * @copyright           (C) 2015-2018 piaoyun.cc  

  6.  * @license             http://piaoyun.cc  

  7.  * @lastmodify          2015-05-06  

  8.  */  

  9. if(PHP_SAPI != 'cli')   

  10. {   

  11.     header('location: sitemaps.xml');   

  12.     exit;   

  13. }   

  14. define('SITEMAP_SIZE', 10000);  //sitemaps中最大输出数量   

  15. define('MODEL_SIZE', 3000);     //每个模型中最大输出数量   

  16. $model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型   

  17.     

  18. define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);   

  19. include PHPCMS_PATH.'/phpcms/base.php';   

  20.     

  21. $param = pc_base::load_sys_class('param');   

  22.     

  23. $model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr;   

  24.     

  25. $map = array();   

  26. foreach ($model_arr as $modelid => $model)   

  27. {   

  28.     $tablename = $model['tablename'];   

  29.         

  30.     $db = pc_base::load_model('content_model');   

  31.     $db->set_model($modelid);   

  32.         

  33.     if($db->count() && count($map) < SITEMAP_SIZE)   

  34.     {   

  35.         $order = 'id desc';   

  36.         $arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order);   

  37.         $map = array_merge($map$arc);   

  38.     }   

  39. }   

  40.     

  41. /* 遍历生成 */  

  42. $html = '<?xml version="1.0" encoding="utf-8"?> 

  43. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';   

  44.     

  45. foreach ($map as $row)   

  46. {   

  47.     if(emptyempty($row) || emptyempty($row['url'])) continue;   

  48.         

  49.     $date = date("Y-m-d"$row['updatetime']);   

  50.     $url = str_replace(array('&''\'''"''>''<'), array('&'''''"''>''<'), $row['url']);   

  51.     $html .= "   

  52. <url>   

  53.         <loc>{$url}</loc>   

  54.         <lastmod>{$date}</lastmod>   

  55.         <changefreq>daily</changefreq>   

  56.         <priority>0.8</priority>   

  57. </url>";   

  58. }   

  59.     

  60. $html .= '</urlset>';   

  61. file_put_contents('./sitemaps.xml'$html);   

  62. ?>  

 

延伸 · 阅读

精彩推荐
  • PHPCMSphpcms的栏目缓存无限级罗列展示处理代码(亲测)

    phpcms的栏目缓存无限级罗列展示处理代码(亲测)

    本文为大家详细介绍下phpcms的栏目缓存无限级罗列展示是怎么实现的,粗测试了一下,效果还不错,有需求的朋友可以参考下哈,希望对大家有所帮助 ...

    phpcms教程网8642019-10-11
  • PHPCMS数据库导入成功,phpcms打不开

    数据库导入成功,phpcms打不开

    问:,数据库导入成功,phpcms打不开 答:您好,查看此域名是解析到 云主机 上的,报错来看应该是您导入的数据库不完整,还差session的表,请您核实 若需...

    未知1822023-05-07
  • PHPCMS如何设置PhpCms广告模块管理 PhpCms广告模块管理图文教程

    如何设置PhpCms广告模块管理 PhpCms广告模块管理图文教程

    PhpCms广告模块管理图文教程,下面给大家总结一下 ...

    PHPCMS教程网3782019-10-14
  • PHPCMSphpcms怎么上传歌曲文件

    phpcms怎么上传歌曲文件

    phpcms上传歌曲文件的方法:首先依次打开“设置-站点管理-修改”;然后在附件配置的“允许上传附件类型”中添加自己需要的类型;接着打开“添加模型...

    未知1522023-05-07
  • PHPCMSphpcms V9实现QQ登陆OAuth2.0提供下载

    phpcms V9实现QQ登陆OAuth2.0提供下载

    phpcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了。这对于使用pc的站长来讲是一个无比巨大的坑。经过对phpcms论坛的一位同学做...

    phpcms教程网3402019-10-11
  • PHPCMSphpcms常见问题解答

    phpcms常见问题解答

    1.为什么phpcms首页幻灯片怎么显示不出来? 答:需要设置文章的 标题图片 如果设置标题图片,则可以在首页以及栏目页以图片方式链接到文章。 2.自定义...

    phpcms教程网2712019-10-07
  • PHPCMSphpcms v9去除盛大连接 关闭盛大通行证的修改方法

    phpcms v9去除盛大连接 关闭盛大通行证的修改方法

    phpcms v9默认开启了盛大连接,直接使用盛大通告证登录网站,但是盛大通告证的覆盖面有限,比不上QQ或者支付宝,甚至不如人人网、豆瓣之类,于是有朋...

    phpcms教程网5562019-10-13
  • PHPCMSphpcms转移到虚拟空间的详细步骤

    phpcms转移到虚拟空间的详细步骤

    本文向大家介绍phpcms从本地转移到虚拟空间的步骤,转移过程需要改动一部分文件,这里提供如何改动这些文件,以保证你可以顺利转移PHPCMS ...

    phpcms教程网4232019-10-13