建站学院 - 轻松建站从此开始!

建站学院

当前位置: 主页 > 网站系统 > phpcms >

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

时间:2020-08-11 10:03来源: 作者:火凤凰 点击:
需求: 通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps 以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可 代码: ?php /**
需求: 
通过服务器的定时任务自动更新网站全站的所有文章,并生成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);   
 
?>  
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
火凤凰 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2020-08-05 17:08 最后登录:2021-11-15 17:11