<?php
include './sc.php';
//sleep(1);
// 设置要读取的目录路径
$directory = './me/' . $user . '/' . $pass . '/products';

// 创建一个空数组来保存文件名和内容
$result = [];

// 确保目录存在并且是可读的
if (is_dir($directory)) {
    // 打开目录
    if ($dh = opendir($directory)) {
        // 循环读取目录中的文件
        while (($file = readdir($dh)) !== false) {
            // 跳过目录中的 . 和 .. 以及其他无效的文件
            if ($file == '.' || $file == '..') {
                continue;
            }

            // 检查文件是否以 .json 结尾
            if (pathinfo($file, PATHINFO_EXTENSION) === 'json') {
                // 获取文件的路径
                $filePath = $directory . '/' . $file;

                // 读取文件内容
                $content = file_get_contents($filePath);

                // 检查文件内容是否有效
                if ($content === false || empty($content)) {
                    continue;
                }

                // 去掉文件的扩展名 .json 作为键
                $fileNameWithoutExtension = pathinfo($file, PATHINFO_FILENAME);

                // 确保文件名不为空
                if (!empty($fileNameWithoutExtension)) {
                    // 将文件内容解码为关联数组
                    $jsonData = json_decode($content, true);

                    // 将文件名作为额外字段添加进解码后的 JSON 数据
                    if (is_array($jsonData)) {
                        $jsonData['_fileName'] = $fileNameWithoutExtension;
                        $result[] = $jsonData;  // 存储解码后的数据
                    }
                }
            }
        }
        // 关闭目录
        closedir($dh);
    }
}

// 自定义排序函数，先按 `name`，再按 `dqtime` 排序
usort($result, function($a, $b) {
    // 按 name 排序，如果 name 相同，再按 dqtime 排序
    $nameA = isset($a['name']) ? $a['name'] : '';
    $nameB = isset($b['name']) ? $b['name'] : '';
    $dqtimeA = isset($a['dqtime']) ? $a['dqtime'] : '';
    $dqtimeB = isset($b['dqtime']) ? $b['dqtime'] : '';

    // 先按 name 字段比较
    if ($nameA == $nameB) {
        // name 相同的情况下按 dqtime 比较
        return strcmp($dqtimeA, $dqtimeB);
    }
    return strcmp($nameA, $nameB);
});

// 将排序后的结果转换为关联数组，文件名为键
$sortedResult = [];
foreach ($result as $jsonData) {
    if (isset($jsonData['_fileName'])) {
        $fileNameWithoutExtension = $jsonData['_fileName'];
        unset($jsonData['_fileName']);  // 删除临时的文件名字段
        $sortedResult[$fileNameWithoutExtension] = $jsonData;
    }
}

// 检查是否有结果，如果没有 .json 文件，则输出 null
if (empty($sortedResult)) {
    $sortedResult = null;
}

// 将结果数组输出为 JSON 格式
header('Content-Type: application/json');
echo json_encode($sortedResult, JSON_PRETTY_PRINT);

?>
