<?php
// sitemap.php
// 注意：文件开头不能有空行或 BOM
header("Content-type: text/xml; charset=utf-8");

// 显示错误便于调试
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require 'config.php'; // 确保 $pdo 已正确初始化

echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

// 获取当前协议（强制 HTTPS）
$protocol = "https"; // 直接固定为 HTTPS
$host = $_SERVER['HTTP_HOST']; // 当前域名

// 1. 首页
echo "<url>\n";
echo "  <loc>$protocol://$host/</loc>\n";
echo "  <lastmod>" . date('Y-m-d') . "</lastmod>\n";
echo "  <priority>1.0</priority>\n";
echo "</url>\n";

// 2. 文章页
try {
    $stmt = $pdo->query("SELECT id, created_at, updated_at FROM articles");
    if ($stmt) {
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            if (empty($row['id'])) continue; // 跳过无效 ID

            // 使用更新日期，如果没有则用创建日期
            $date = !empty($row['updated_at']) ? $row['updated_at'] : $row['created_at'];
            $date = !empty($date) ? date('Y-m-d', strtotime($date)) : date('Y-m-d');

            // 构建 HTTPS 文章 URL
            $loc = $protocol . "://$host/article.php?id=" . $row['id'];

            echo "<url>\n";
            echo "  <loc>$loc</loc>\n";
            echo "  <lastmod>$date</lastmod>\n";
            echo "  <priority>0.8</priority>\n";
            echo "</url>\n";
        }
    } else {
        throw new Exception("查询文章失败: " . implode(", ", $pdo->errorInfo()));
    }
} catch (Exception $e) {
    error_log($e->getMessage());
}

echo "</urlset>";