fork(1) download
  1. <?php
  2.  
  3. //создаём массив для номеров
  4. $numbers = array();
  5. //создаём массив для кодов операторов
  6. $operatorCodes = array(
  7. 39,
  8. 50,
  9. 63,
  10. 66,
  11. 67,
  12. 68,
  13. 91,
  14. 92,
  15. 93,
  16. 94,
  17. 95,
  18. 96,
  19. 97,
  20. 98,
  21. 99
  22. );
  23.  
  24. for ($i = 0; $i < 30; $i++) {
  25. $randomCodeOfArray = array_rand($operatorCodes);
  26. $randomCode = $operatorCodes[$randomCodeOfArray]; //генерирует код оператора
  27. $randomNumbers = mt_rand(0000001, 9999999); //генерирует номер абонента
  28. $numbers[$i] = "38 0$randomCode $randomNumbers\n"; //собирает номер
  29.  
  30. }
  31.  
  32. //проверяем корректность номеров, и сортируем их в соответствующие массивы
  33. $correctNumbers = array();
  34. $incorrectNumbers = array();
  35.  
  36. $regexp = '/^38\\s0([0-9]{2})\\s([0-9]{7})$/';
  37.  
  38. $k1 = 0; //счётчики для массивов корректности
  39. $k2 = 0;
  40. for ($i = 0; $i < count($numbers); $i++) {
  41.  
  42. if (preg_match($regexp, $numbers[$i])) {
  43. //выводим на экран хорошее число и записываем в массив для корректных
  44. //echo "$numbers[$i] -- ✓\n";
  45. $correctNumbers[$k1] = $numbers[$i];
  46. $k1++;
  47. } else {
  48. //выводим на экран плохое число, ошибку, и записываем в массив для некорректных
  49. //echo "$numbers[$i] ----------- WARNING, номер указан в неверном формате\n";
  50. $incorrectNumbers[$k2] = $numbers[$i];
  51. $k2++;
  52. }
  53.  
  54. }
  55.  
  56. echo "Корректные номера: \n\n\n";
  57. for ($i = 0; $i < count($correctNumbers); $i++) {
  58. echo "$correctNumbers[$i] \n";
  59. }
  60.  
  61. echo "\n\n\n Некорректные номера: \n\n\n";
  62. for ($i = 0; $i < count($incorrectNumbers); $i++) {
  63. echo "$incorrectNumbers[$i] \n";
  64. }
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Корректные номера:   


38 066 5513258
 
38 097 3005076
 
38 099 8399966
 
38 092 7058222
 
38 097 4118376
 
38 097 2967872
 
38 098 3504575
 
38 067 2854041
 
38 092 4245129
 
38 095 8536696
 
38 099 8127013
 
38 063 7921155
 
38 063 2382021
 
38 068 2118355
 
38 068 6711734
 
38 039 9879904
 
38 099 3502795
 
38 091 7864844
 
38 092 9661184
 
38 095 6973038
 
38 097 7233003
 
38 063 4930483
 
38 095 9661171
 
38 092 1003578
 
38 066 3363261
 
38 098 3654174
 
38 095 5419724
 
38 093 3046597
 
38 099 6394869
 



  Некорректные номера:  


38 039 258452