返回顶部
首页 > 资讯 > 服务器 >PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
  • 836
分享到

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

Sitemaps 2022-06-12 01:06:12 836人浏览 独家记忆
摘要

需求: 通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps 以下代码为sitemaps crontab for PHPcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可

需求:

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

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

代码:

PHP Code复制内容到剪贴板

  1. <?php   
  2.   
  3. if(PHP_Sapi != 'cli')   
  4. {   
  5.     header('location: sitemaps.xml');   
  6.     exit;   
  7. }   
  8. define('SITEMAP_SIZE', 10000);  //sitemaps中最大输出数量   
  9. define('MODEL_SIZE', 3000);     //每个模型中最大输出数量   
  10. $model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型   
  11.     
  12. define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);   
  13. include PHPCMS_PATH.'/phpcms/base.php';   
  14.     
  15. $param = pc_base::load_sys_class('param');   
  16.     
  17. $model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr;   
  18.     
  19. $map = array();   
  20. foreach ($model_arr as $modelid => $model)   
  21. {   
  22.     $tablename = $model['tablename'];   
  23.         
  24.     $db = pc_base::load_model('content_model');   
  25.     $db->set_model($modelid);   
  26.         
  27.     if($db->count() && count($map) < SITEMAP_SIZE)   
  28.     {   
  29.         $order = 'id desc';   
  30.         $arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order);   
  31.         $map = array_merge($map$arc);   
  32.     }   
  33. }   
  34.     
  35.   
  36. $html = '<?xml version="1.0" encoding="utf-8"?>  
  37. <urlset xmlns="Http://www.sitemaps.org/schemas/sitemap/0.9">';   
  38.     
  39. foreach ($map as $row)   
  40. {   
  41.     if(emptyempty($row) || emptyempty($row['url'])) continue;   
  42.         
  43.     $date = date("Y-m-d"$row['updatetime']);   
  44.     $url = str_replace(array('&''\'''"''>''<'), array('&'''''"''>''<'), $row['url']);   
  45.     $html .= "   
  46. <url>   
  47.         <loc>{$url}</loc>   
  48.         <lastmod>{$date}</lastmod>   
  49.         <changefreq>daily</changefreq>   
  50.         <priority>0.8</priority>   
  51. </url>";   
  52. }   
  53.     
  54. $html .= '</urlset>';   
  55. file_put_contents('./sitemaps.xml'$html);   
  56. ?>  
当然windows一样可以使用,通过计划任务与dos命令完成 https://www.jb51.net/article/86202.htm。

--结束END--

本文标题: PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]

本文链接: https://lsjlt.com/news/31851.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作