fork download
  1. <?php
  2. // Конфигурация
  3. $inputFile = 'input.txt'; // Файл с исходными данными
  4. $outputFile = 'output.txt'; // Файл для результатов
  5.  
  6. // Функция для извлечения телефонных номеров
  7. function extractPhones($text) {
  8. $phones = [];
  9. // Регулярное выражение для российских номеров в разных форматах
  10. preg_match_all('/(?:\+7|8)[\s\-()]*(?:9\d{2}|[3489]\d{2})[\s\-()]*\d{3}[\s\-()]*\d{2}[\s\-()]*\d{2}/', $text, $matches);
  11.  
  12. if (!empty($matches[0])) {
  13. foreach ($matches[0] as $phone) {
  14. // Нормализация номера (удаление всех нецифровых символов, кроме +)
  15. $cleanPhone = preg_replace('/[^\d\+]/', '', $phone);
  16. // Проверяем длину номера (для России обычно 11 цифр)
  17. if (strlen($cleanPhone) >= 11) {
  18. $phones[] = $cleanPhone;
  19. }
  20. }
  21. }
  22. return $phones;
  23. }
  24.  
  25. // Чтение исходного файла
  26. if (!file_exists($inputFile)) {
  27. die("Ошибка: Файл $inputFile не найден!");
  28. }
  29.  
  30. $content = file_get_contents($inputFile);
  31. if ($content === false) {
  32. die("Ошибка: Не удалось прочитать файл $inputFile");
  33. }
  34.  
  35. // Извлечение всех номеров
  36. $allPhones = extractPhones($content);
  37.  
  38. // Удаление дубликатов
  39. $uniquePhones = array_unique($allPhones);
  40.  
  41. // Сохранение результатов
  42. if (!empty($uniquePhones)) {
  43. $result = implode(PHP_EOL, $uniquePhones);
  44. file_put_contents($outputFile, $result);
  45. echo "Готово! Найдено " . count($uniquePhones) . " уникальных номеров. Результат сохранен в $outputFile";
  46. } else {
  47. echo "Телефонные номера не найдены.";
  48. }
  49. ?>
Success #stdin #stdout 0.03s 26156KB
stdin
'78796161576, 78796151835, 78002222480',
'78796151835',
'78795174848, 78795126655, 78795125211, 78795174868',
'78795174527, 78795174530, 78795174715',
'78793989290',
'78793979121',
'78793977832',
'78793976183',
'78793976122, 78793397013',
'78793975950, 78793976050, 78793975930, 78672761727, 78672762064, 78793384349, 78793371130',
'78793975541, 78007755989',
'78793975530, 78793396145, 78793399839',
'78793975529',
'78793974515, 78652500928, 78613757170, 78612125601, 78612125570, 78612126609, 78612125538, 78442263193, 78612125751, 78622704674, 78632747030, 78612100527',
'78793892837',
'78793822854, 78793822859, 78793822846',
'78793771718',
'78793770281',
'78793766849',
'78793766466',
stdout
Ошибка: Файл input.txt не найден!