fork download
  1. <?php
  2. header("Content-Type: text/plain; charset=utf-8");
  3. ?>
  4. <?php
  5. $number = array('84951234567', '+74951234567', '8-495-1-234-567', '8 (8122) 56-56-56', '8-911-1234567', '8 (911) 12 345 67', '8-911 12 345 67', '8 (911) - 123 - 45 - 67', '+ 7 999 123 4567', '8 ( 999 ) 1234567', '8 999 123 4567');
  6. $number2 = array('02', '84951234567 позвать люсю', '849512345', '849512345678',
  7. '8 (409) 123-123-123', '7900123467', '5005005001', '8888-8888-88',
  8. '84951a234567', '8495123456a',
  9. '+1 234 5678901', // неверный код страны
  10. '+8 234 5678901', // либо 8 либо +7
  11. '7 234 5678901' // нет +
  12. );
  13.  
  14.  
  15. function getNumber($array)
  16. {
  17. foreach ($array as &$number)
  18. {
  19. if (preg_match('/^\s?[+]?\s?(7|8)/', $number))
  20. {
  21. $number = preg_replace('/[\s-()]/', '', preg_replace('/^\s?[+]\s?7/', '8', $number));
  22. if (strlen($number) != 11 OR !is_numeric($number))
  23. {
  24. $number = "$number Неверно введен номер";
  25. }
  26. elseif (!preg_match('/^8\\d*/', $number))
  27. {
  28. $number = "$number Неверно введен код страны";
  29. }
  30. }
  31. else $number = "$number Неверный формат номера";
  32. }
  33. return $array;
  34. }
  35. print_r(getNumber($number));
  36. print_r(getNumber($number2));
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
 
Array
(
    [0] => 84951234567
    [1] => 84951234567
    [2] => 84951234567
    [3] => 88122565656
    [4] => 89111234567
    [5] => 89111234567
    [6] => 89111234567
    [7] => 89111234567
    [8] => 89991234567
    [9] => 89991234567
    [10] => 89991234567
)
Array
(
    [0] => 02 Неверный формат номера
    [1] => 84951234567позватьлюсю Неверно введен номер
    [2] => 849512345 Неверно введен номер
    [3] => 849512345678 Неверно введен номер
    [4] => 8409123123123 Неверно введен номер
    [5] => 7900123467 Неверно введен номер
    [6] => 5005005001 Неверный формат номера
    [7] => 8888888888 Неверно введен номер
    [8] => 84951a234567 Неверно введен номер
    [9] => 8495123456a Неверно введен номер
    [10] => +1 234 5678901 Неверный формат номера
    [11] => +82345678901 Неверно введен номер
    [12] => 72345678901 Неверно введен код страны
)