73 lines
4.0 KiB
PHP
73 lines
4.0 KiB
PHP
|
|
<?php
|
|||
|
|
// Получаем переменные через POST запрос и конвертируем их в UTF-8, если необходимо
|
|||
|
|
$subject = isset($_POST['subject']) ? mb_convert_encoding($_POST['subject'], 'UTF-8', 'auto') : '';
|
|||
|
|
$bodyHtml = isset($_POST['bodyHtml']) ? mb_convert_encoding($_POST['bodyHtml'], 'UTF-8', 'auto') : '';
|
|||
|
|
$bodyText = isset($_POST['bodyText']) ? mb_convert_encoding($_POST['bodyText'], 'UTF-8', 'auto') : '';
|
|||
|
|
$bodyClean = isset($_POST['bodyClean']) ? mb_convert_encoding($_POST['bodyClean'], 'UTF-8', 'auto') : '';
|
|||
|
|
|
|||
|
|
// Путь к файлу логов
|
|||
|
|
$logFile = 'logs/mailreg.log';
|
|||
|
|
|
|||
|
|
// Время начала работы скрипта
|
|||
|
|
$startTime = microtime(true);
|
|||
|
|
file_put_contents($logFile, "Начало работы скрипта: " . date('Y-m-d H:i:s', $startTime) . "\n");
|
|||
|
|
|
|||
|
|
// Логируем полученные данные
|
|||
|
|
file_put_contents($logFile, "Тема письма: " . $subject . "\n", FILE_APPEND);
|
|||
|
|
file_put_contents($logFile, "Тело письма HTML: " . $bodyHtml . "\n", FILE_APPEND);
|
|||
|
|
file_put_contents($logFile, "Тело письма текст: " . $bodyText . "\n", FILE_APPEND);
|
|||
|
|
file_put_contents($logFile, "Тело письма очищено от HTML: " . $bodyClean . "\n", FILE_APPEND);
|
|||
|
|
|
|||
|
|
// Объединяем все данные в одну строку для поиска
|
|||
|
|
$combinedText = $subject . ' ' . $bodyHtml . ' ' . $bodyText . ' ' . $bodyClean;
|
|||
|
|
|
|||
|
|
// Логируем объединённые данные
|
|||
|
|
file_put_contents($logFile, "Объединенные данные для поиска: " . $combinedText . "\n", FILE_APPEND);
|
|||
|
|
|
|||
|
|
// Проверяем на номера дел с цифрами (1-6 цифр/2-4 цифры)
|
|||
|
|
$patternDigits = '/\d{1,6}\/\d{2,4}/u';
|
|||
|
|
$resultDigits = preg_match($patternDigits, $combinedText, $matchesDigits);
|
|||
|
|
|
|||
|
|
// Логируем результат проверки на цифры
|
|||
|
|
file_put_contents($logFile, "Результат проверки на номер дела/материала: $resultDigits\n", FILE_APPEND);
|
|||
|
|
|
|||
|
|
if ($resultDigits) {
|
|||
|
|
$caseNumber = $matchesDigits[0];
|
|||
|
|
file_put_contents($logFile, "Найденный номер дела/материала: $caseNumber\n", FILE_APPEND);
|
|||
|
|
echo $caseNumber;
|
|||
|
|
} else {
|
|||
|
|
// Проверяем на номера с любыми буквами перед шестью цифрами
|
|||
|
|
$patternAnyLetters = '/[A-ZА-Яа-я]{2}-\d{6}/u';
|
|||
|
|
$resultAnyLetters = preg_match($patternAnyLetters, $combinedText, $matchesAnyLetters);
|
|||
|
|
|
|||
|
|
file_put_contents($logFile, "Результат проверки на любые буквы: $resultAnyLetters\n", FILE_APPEND);
|
|||
|
|
|
|||
|
|
if ($resultAnyLetters) {
|
|||
|
|
$caseNumber = $matchesAnyLetters[0];
|
|||
|
|
file_put_contents($logFile, "Найденный номер дела (любые буквы): $caseNumber\n", FILE_APPEND);
|
|||
|
|
echo $caseNumber;
|
|||
|
|
} else {
|
|||
|
|
// Проверяем на номера вида "ФС№046558998" или "ФС 046558998" и выводим только цифры
|
|||
|
|
$patternFS = '/[A-ZА-Яа-я]{2}(?:№)?\s?\d{9}/u';
|
|||
|
|
$resultFS = preg_match($patternFS, $combinedText, $matchesFS);
|
|||
|
|
|
|||
|
|
if ($resultFS) {
|
|||
|
|
// Извлекаем только цифры
|
|||
|
|
$caseNumber = preg_replace('/[^\d]/', '', $matchesFS[0]);
|
|||
|
|
file_put_contents($logFile, "Найденный номер дела (ФС и т.д.): $caseNumber\n", FILE_APPEND);
|
|||
|
|
echo $caseNumber;
|
|||
|
|
} else {
|
|||
|
|
file_put_contents($logFile, "Номер дела не найден.\n", FILE_APPEND);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Время окончания работы скрипта
|
|||
|
|
$endTime = microtime(true);
|
|||
|
|
file_put_contents($logFile, "Окончание работы скрипта: " . date('Y-m-d H:i:s', $endTime) . "\n", FILE_APPEND);
|
|||
|
|
|
|||
|
|
// Общее время выполнения
|
|||
|
|
$totalTime = $endTime - $startTime;
|
|||
|
|
file_put_contents($logFile, "Общее время работы скрипта: " . number_format($totalTime, 4) . " секунд\n", FILE_APPEND);
|
|||
|
|
?>
|