PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
2016-06-08 13:56
627 查看
需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
当然windows一样可以使用,通过计划任务与dos命令完成 https://www.geek-share.com/detail/2676365651.html。
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
<?php /** * sitemap.php PHPCMS V9 sitemaps入口 * * @copyright (C) 2015-2018 piaoyun.cc * @license http://piaoyun.cc * @lastmodify 2015-05-06 */ if(PHP_SAPI != 'cli') { header('location: sitemaps.xml'); exit; } define('SITEMAP_SIZE', 10000); //sitemaps中最大输出数量 define('MODEL_SIZE', 3000); //每个模型中最大输出数量 $model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型 define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); include PHPCMS_PATH.'/phpcms/base.php'; $param = pc_base::load_sys_class('param'); $model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr; $map = array(); foreach ($model_arr as $modelid => $model) { $tablename = $model['tablename']; $db = pc_base::load_model('content_model'); $db->set_model($modelid); if($db->count() && count($map) < SITEMAP_SIZE) { $order = 'id desc'; $arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order); $map = array_merge($map, $arc); } } /* 遍历生成 */ $html = '<?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; foreach ($map as $row) { if(emptyempty($row) || emptyempty($row['url'])) continue; $date = date("Y-m-d", $row['updatetime']); $url = str_replace(array('&', '\'', '"', '>', '<'), array('&', ''', '"', '>', '<'), $row['url']); $html .= " <url> <loc>{$url}</loc> <lastmod>{$date}</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url>"; } $html .= '</urlset>'; file_put_contents('./sitemaps.xml', $html); ?>
当然windows一样可以使用,通过计划任务与dos命令完成 https://www.geek-share.com/detail/2676365651.html。
相关文章推荐
- AT SELECTION-SCREEN OUTPUT 用法实例
- PHP多种循环方法及示例
- PHP生成随机密码的方法
- PHP安装PDO
- 前两天使用PHP的strtotime的时候遇到了2038的问题
- php的命名空间层级与目录层级是一致的吗?
- PHP安装xcache
- Laravel如何优雅的使用Swoole
- php5.3中ZendGuardLoader与wincache冲突问题的解决方法
- PHP下编码转换函数mb_convert_encoding与iconv的使用说明
- PHP语言优势
- 事故记录:php-cgi进程过多导致系统资源耗尽
- php中的curl使用入门教程和常见用法实例
- 古典问题:有一对兔子,从出生后第三个月都能生一对兔子,小兔子长到第三个月后每个月又生一对兔子... 假如兔子不死,问每个月兔子的总数是多少个?
- php静态
- yii 简单依赖注入
- PHP_SQL根据当前坐标查询5公里以内的信息
- Yii 安装二维码扩展Qrcode
- PHP压缩图片代码
- PHP服务端常用正则表达式