当前位置:首页 > PHP

php 实现sitemap

2026-01-29 11:45:56PHP

生成静态 Sitemap 文件

使用 PHP 动态生成 XML 格式的 Sitemap,适合内容较少的网站。

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

// 示例 URL 数据(可替换为数据库查询)
$urls = [
    ['loc' => 'https://example.com/', 'lastmod' => '2023-10-01', 'priority' => '1.0'],
    ['loc' => 'https://example.com/about', 'lastmod' => '2023-09-15', 'priority' => '0.8']
];

foreach ($urls as $url) {
    echo '<url>';
    echo '<loc>' . htmlspecialchars($url['loc']) . '</loc>';
    echo '<lastmod>' . $url['lastmod'] . '</lastmod>';
    echo '<priority>' . $url['priority'] . '</priority>';
    echo '</url>';
}

echo '</urlset>';
?>

将代码保存为 sitemap.php,通过访问该文件直接输出 XML。

动态生成分页 Sitemap

适用于大型网站,将 Sitemap 分多文件存储,并通过索引文件管理。

主索引文件(sitemap-index.php)

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

// 假设有 3 个分页 Sitemap
for ($i = 1; $i <= 3; $i++) {
    echo '<sitemap>';
    echo '<loc>https://example.com/sitemap-' . $i . '.xml</loc>';
    echo '<lastmod>' . date('Y-m-d') . '</lastmod>';
    echo '</sitemap>';
}

echo '</sitemapindex>';
?>

分页 Sitemap 示例(sitemap-1.php)

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

// 从数据库或其他数据源获取分页数据
$urls = [
    ['loc' => 'https://example.com/page1', 'lastmod' => '2023-10-01'],
    ['loc' => 'https://example.com/page2', 'lastmod' => '2023-09-20']
];

foreach ($urls as $url) {
    echo '<url>';
    echo '<loc>' . htmlspecialchars($url['loc']) . '</loc>';
    echo '<lastmod>' . $url['lastmod'] . '</lastmod>';
    echo '</url>';
}

echo '</urlset>';
?>

自动更新 Sitemap

通过定时任务(如 Cron)或内容更新时触发,重新生成 Sitemap 文件。

<?php
function generateSitemap() {
    $xml = '<?xml version="1.0" encoding="UTF-8"?>';
    $xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

    // 从数据库获取所有公开的 URL
    $urls = fetchUrlsFromDatabase(); // 自定义函数

    foreach ($urls as $url) {
        $xml .= '<url>';
        $xml .= '<loc>' . htmlspecialchars($url['loc']) . '</loc>';
        $xml .= '<lastmod>' . $url['lastmod'] . '</lastmod>';
        $xml .= '</url>';
    }

    $xml .= '</urlset>';

    // 保存为静态文件
    file_put_contents('sitemap.xml', $xml);
}

// 调用函数生成
generateSitemap();
?>

提交 Sitemap 到搜索引擎

生成后,将 Sitemap 提交到 Google Search Console 或 Bing Webmaster Tools。

php 实现sitemap

  1. sitemap.xml 放置在网站根目录。
  2. 通过搜索引擎的提交工具手动提交,或在 robots.txt 中添加:
    Sitemap: https://example.com/sitemap.xml

注意事项

  • 文件命名:通常使用 sitemap.xml 或分页命名如 sitemap-1.xml
  • 压缩支持:可生成 sitemap.xml.gz 减少带宽消耗。
  • 频率限制:避免频繁更新,通常每日或每周一次即可。

标签: phpsitemap
分享给朋友:

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php实现伪静态

php实现伪静态

PHP 实现伪静态的方法 伪静态(URL Rewrite)是一种将动态URL转换为看似静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式: 使用 Apache 的 mod_rew…