|
PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版,
需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
PHP Code复制内容到剪贴板
/**
* 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)
{
$order = 'id desc';
$arc = $db->select(array('status'=>99)] 'url]updatetime', MODEL_SIZE, $order);
$map = array_merge($map] $arc);
}
}
/* 遍历生成 */
$html = '
';
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}
{$date}
daily
0.8
";
}
$html .= '';
file_put_contents('./sitemaps.xml', $html);
?>
[/ol,
当然windows一样可以使用,通过计划任务与dos命令完成 https://www.jb51.net/article/86202.htm。 |
|