PHP自动生成标准的sitemap文件
super
2022-02-14 09:30
1839
function updateSiteMap() {
$str = '<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
// 这里先把网站的几大核心主页面 写到最前面
$array = [
[
'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/index.html',
'lastmod' => date('Y-m-d'),
'changefreq' => 'daily',
'priority' => '1.0'
],
[
'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/news.html',
'lastmod' => date('Y-m-d'),
'changefreq' => 'daily',
'priority' => '1.0'
],
[
'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/cases.html',
'lastmod' => date('Y-m-d'),
'changefreq' => 'daily',
'priority' => '1.0'
],
[
'url' => 'https://' . $_SERVER['HTTP_HOST'] . '/about.html',
'lastmod' => date('Y-m-d'),
'changefreq' => 'daily',
'priority' => '1.0'
]
];
foreach ($array as $k => $v) {
$str .= arr_to_xml($v);
}
// 查询所有文章
$list = Db::name('article')->select();
if ($list) {
foreach ($list as $k => $v) {
$array = [
'loc' => 'https://' . $_SERVER['HTTP_HOST'] . '/article/' . $v['id'] . '.html', // 这里根据路由灵活变动
'lastmod' => $v['update_time'] ? date('Y-m-d', $v['update_time']) : date('Y-m-d', $v['time']), // 当前文章最后修改时间,也可使用date('Y-m-d')
'changefreq' => 'daily', // 此页面的更新频率,灵活变动
'priority' => '1.0' // 页面权重,灵活变动
];
$str .= arr_to_xml($array);
}
$str .= '
</urlset>';
if ($str != null) {
// 将生成好的字符串写入根目录下的sitemap.xml文件
file_put_contents('./sitemap.xml', $str);
}
}
}
function arr_to_xml($data, $url = true) {
$str = "";
if ($url) {
$str .= "
<url>
";
}
foreach ($data as $key => $val) {
if (is_array($val)) {
$child = arr_to_xml($val, false);
$str .= " <$key>$child</$key>";
} else {
$str .= " <$key>$val</$key>
";
}
}
if ($url) {
$str .= " </url>";
}
return $str;
}
请按照以上代码生成,注意缩进不要乱,还有代码前面的空格及后面的换行
文章禁止转载
0 条讨论