add(new DateInterval('PT1H')); break; case '6h': $expiryDate->add(new DateInterval('PT6H')); break; case '1d': $expiryDate->add(new DateInterval('P1D')); break; case '3d': $expiryDate->add(new DateInterval('P3D')); break; case '7d': $expiryDate->add(new DateInterval('P7D')); break; case '30d': $expiryDate->add(new DateInterval('P30D')); break; } } // 生成ID $id = uniqid() . '-' . rand(1000, 9999); // 创建数据 $data = [ 'id' => $id, 'content' => $content, 'expiry' => $expiryDate->format('Y-m-d H:i:s'), 'createdAt' => (new DateTime())->format('Y-m-d H:i:s') ]; // 写入文件(每行一个JSON对象) $dataLine = json_encode($data, JSON_UNESCAPED_UNICODE) . "\n"; $success = file_put_contents($file, $dataLine, FILE_APPEND); if ($success) { $message = '成功:数据已保存到 sq.txt 文件!'; } else { $message = '错误:文件写入失败,请检查 sq.txt 权限!'; $messageType = 'error'; } break; // 删除数据 case 'delete': $id = $_POST['id'] ?? ''; if (empty($id)) { $message = '错误:缺少数据ID!'; $messageType = 'error'; break; } $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $newLines = []; foreach ($lines as $line) { $item = json_decode($line, true); if (is_array($item) && $item['id'] != $id) { $newLines[] = $line; } } $success = file_put_contents($file, implode("\n", $newLines) . "\n"); if ($success) { $message = '成功:数据已删除!'; } else { $message = '错误:删除失败,请检查文件权限!'; $messageType = 'error'; } break; // 清理过期数据 case 'clean': $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $newLines = []; $now = new DateTime(); $deleted = 0; foreach ($lines as $line) { $item = json_decode($line, true); if (is_array($item) && isset($item['expiry'])) { $expiryDate = new DateTime($item['expiry']); if ($expiryDate > $now) { $newLines[] = $line; } else { $deleted++; } } else { $newLines[] = $line; } } $success = file_put_contents($file, implode("\n", $newLines) . "\n"); if ($success) { $message = "成功:已清理 $deleted 条过期数据!"; } else { $message = '错误:清理失败,请检查文件权限!'; $messageType = 'error'; } break; } } // 加载数据 $file = 'sq.txt'; $dataList = []; $totalCount = 0; $expiredCount = 0; if (file_exists($file)) { $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $totalCount = count($lines); $now = new DateTime(); foreach ($lines as $line) { $item = json_decode($line, true); if (is_array($item)) { // 检查是否过期 $expiryDate = new DateTime($item['expiry']); $item['isExpired'] = $expiryDate <= $now; if ($item['isExpired']) { $expiredCount++; } $dataList[] = $item; } } } ?> 文本存储系统(纯PHP版)

文本存储系统

数据直接保存到服务器 sq.txt 文件,支持自动过期清理

提交文本数据

支持中文、特殊字符,内容将原样保存

过期后的数据可通过"清理过期数据"按钮删除

已存储数据

数据总数: | 过期数据:
ID 文本内容 创建时间 过期时间 状态 操作
暂无存储数据