Files
crm.clientright.ru/mail_regex.php

73 lines
4.0 KiB
PHP
Raw Permalink Normal View History

<?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);
?>