如何用PHP生成XML格式的Sitemap网站地图文件并实现自动化管理?

下面就给大家具体介绍一下如何用PHP生成XML格式的Sitemap网站地图文件并实现自动化管理,这是目前为止我认为最佳的解决方案(中小站点)。

 

 

一,PHP生成Sitemap.xml网站地图文件的实现原理。

原理其实很简单,就是字符串的拼装。先准备好文件中需要包含的网页链接地址,然后根据xml规范格式对这些地址进行拼装,最后使用file_put_contents()函数将文件输出到网站根目录。

 

 

二,PHP生成Sitemap.xml的具体案例及实现代码。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public function xmlmap() {
    $xml '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
    $xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.PHP_EOL;
 
    $xml .= '<url>'.PHP_EOL;
    $xml .= '<loc>https://www.hubaye.com</loc>'.PHP_EOL;//网站首页地址
    $xml .= '<lastmod>'.date('Y-m-d').'</lastmod>'.PHP_EOL;
    $xml .= '<changefreq>always</changefreq>'.PHP_EOL;
    $xml .= '<priority>1.0</priority>'.PHP_EOL;
    $xml .= '</url>'.PHP_EOL;
 
    $essay_type_cache = cache('essay_type');//从缓存中获取文章类别数据
    foreach($essay_type_cache as $v) {
        $xml .= '<url>'.PHP_EOL;
        $xml .= '<loc>https://www.hubaye.com/'.$v['route_tag'].'/</loc>'.PHP_EOL;//拼接文章列表页链接地址
        $xml .= '<lastmod>'.date('Y-m-d').'</lastmod>'.PHP_EOL;
        $xml .= '<changefreq>always</changefreq>'.PHP_EOL;
        $xml .= '<priority>0.9</priority>'.PHP_EOL;
        $xml .= '</url>'.PHP_EOL;
    }
 
    $essay_list = db('essay')->where('display', 1)->field('id,type,create_time')->order('create_time desc')->select();//获取数据库所有能展示的文章数据
    foreach($essay_list as $v) {
        $xml .= '<url>'.PHP_EOL;
        $xml .= '<loc>https://www.hubaye.com/'.$essay_type_cache[$v['type']]['route_tag'].'/post/'.$v['id'].'.html</loc>'.PHP_EOL;//拼接文章链接地址
        $xml .= '<lastmod>'.dgmDate($v['create_time'], 'Y-m-d').'</lastmod>'.PHP_EOL;
        $xml .= '<changefreq>daily</changefreq>'.PHP_EOL;
        $xml .= '<priority>0.8</priority>'.PHP_EOL;
        $xml .= '</url>'.PHP_EOL;
    }
 
    $xml .= '</urlset>';
    file_put_contents("./xmlmap.xml"$xml);//输出xmlmap文件到网站根目录
}

 

 

三,如何自动化管理Sitemap.xml网站地图文件?

我们使用上面的PHP代码成功生成sitemap文件以后是不是就完事了?其实并没有,因为Sitemap.xml文件是需要实时更新或者每天更新的,所以我们应该想一种自动化管理sitemap文件的解决方案。

我这边目前采用的缓存更新的方式,就是每次网站更新缓存的时候会同时更新sitemap文件,从而达到自动化管理的目的

当然还有一种常用的解决方案是编写一个定时任务,每天固定时间去访问生成Sitemap的方法,从而实现自动化管理的目的

模块地图 (nongpin88.com)

posted @ 2023-11-06 16:01  圆柱模板  阅读(45)  评论(0编辑  收藏  举报