$normalizedCurrentError = $this->normalizeText($currentError);
$currentErrorHash = md5($normalizedCurrentError);
+ // Экранируем переносы строк для хранения — одна запись = одна строка файла
+ $escapedError = str_replace(["\r\n", "\n", "\r"], '\\n', $currentError);
+
foreach ($errorLines as &$line) {
$parts = explode('|', $line, 4);
if (count($parts) < 4) {
- error_log("Некорректная строка: " . $line);
continue;
}
[$date, $count, $hash, $errorText] = $parts;
return false;
}
-
$count++;
$line = implode('|', [$currentDate, $count, $hash, $errorText]);
break;
}
}
-
if (!$errorExists) {
- $errorLines[] = implode('|', [$currentDate, 1, $currentErrorHash, $currentError]);
+ $errorLines[] = implode('|', [$currentDate, 1, $currentErrorHash, $escapedError]);
}
-
file_put_contents($filePath, implode(PHP_EOL, $errorLines) . PHP_EOL);
return true;