=== get_log.php === true, 'progress' => 0, 'status' => 'Запуск фонового процесса разметки дисков...', 'console' => ['Ожидание инициализации логирования...'] ], JSON_UNESCAPED_UNICODE); exit; } $lines = file($log_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $progress = 0; $status = 'Развертывание системы...'; $clean_lines = []; // Парсим лог целиком foreach ($lines as $line) { if (strpos($line, '[PROGRESS]') === 0) { $progress = (int)trim(str_replace('[PROGRESS]', '', $line)); } elseif (strpos($line, '[INFO]') === 0) { $status = trim(str_replace('[INFO]', '', $line)); $clean_lines[] = "🔹 " . $status; } elseif (strpos($line, '[ERROR]') === 0) { $status = trim(str_replace('[ERROR]', '', $line)); $clean_lines[] = "❌ " . $status; } else { // Все остальные строки (вывод rsync, mkfs, wipefs) добавляем как есть $clean_lines[] = $line; } } echo json_encode([ 'success' => true, 'progress' => $progress, 'status' => $status, 'console' => $clean_lines // Отдаем ВСЮ историю строк лога ], JSON_UNESCAPED_UNICODE); exit;