当前位置:首页 > 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。

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

注意事项

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

php 实现sitemap

标签: phpsitemap
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (in…

php实现验证码

php实现验证码

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

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'loca…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $n…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 &l…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $n…