PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
发布时间:2020-05-29 作者:洛阳网站建设 点击:
需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
PHP Code复制内容到剪贴板
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 = '';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}daily0.8";}$html .= '';file_put_contents('./sitemaps.xml', $html);?>
当然windows一样可以使用,通过计划任务与dos命令完成 。
网站关键词:
phpcms







