<?php
// в preg_replace можно использовать массивы, что бы не делать over9k циклов foreach
$regExp = '/^\\W*(([+]\\s*7)|8)(\\W*[0-9]){10}\\W*$/ui'; //регулярка для правильного номера
$pattern = array ('/\\W*/u', '/^8|^7/'); // массив из Р.В. для: 1) поиск \W 2) !!затем!! поиск 8 или 7 в начале строки $replacement = array ('','+7'); // чистим строку от мусора, а 8 (или 7) в начале, заменяем на +7 $val; // операционная переменная
$pureNumbers = array(); // массив куда сложим чистые номера $correctNumbers = 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'
);
foreach($correctNumbers as $value) { // перебираем номера
if (preg_match($regExp, $value)) { // отделяем зерна от плевел, зерна подлежат обработке $val = preg_replace ($pattern, $replacement, $value); //чистим вилкой наш номер и приводим к одному виду $pureNumbers[] = $val; // записываем обработанный номер в массив
}
}
PD9waHAKCi8vINCyIHByZWdfcmVwbGFjZSDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQvNCw0YHRgdC40LLRiywg0YfRgtC+INCx0Ysg0L3QtSDQtNC10LvQsNGC0Ywgb3ZlcjlrINGG0LjQutC70L7QsiBmb3JlYWNoCiRyZWdFeHAgPSAnL15cXFcqKChbK11cXHMqNyl8OCkoXFxXKlswLTldKXsxMH1cXFcqJC91aSc7IC8v0YDQtdCz0YPQu9GP0YDQutCwINC00LvRjyDQv9GA0LDQstC40LvRjNC90L7Qs9C+INC90L7QvNC10YDQsCAKJHBhdHRlcm4gPSBhcnJheSAoJy9cXFcqL3UnLCAnL144fF43LycpOyAvLyDQvNCw0YHRgdC40LIg0LjQtyDQoC7Qki4g0LTQu9GPOiAxKSDQv9C+0LjRgdC6IFxXIDIpICEh0LfQsNGC0LXQvCEhINC/0L7QuNGB0LogOCDQuNC70LggNyDQsiDQvdCw0YfQsNC70LUg0YHRgtGA0L7QutC4CiRyZXBsYWNlbWVudCA9IGFycmF5ICgnJywnKzcnKTsgLy8g0YfQuNGB0YLQuNC8INGB0YLRgNC+0LrRgyDQvtGCINC80YPRgdC+0YDQsCwg0LAgOCAo0LjQu9C4IDcpINCyINC90LDRh9Cw0LvQtSwg0LfQsNC80LXQvdGP0LXQvCDQvdCwICs3CiR2YWw7IC8vINC+0L/QtdGA0LDRhtC40L7QvdC90LDRjyDQv9C10YDQtdC80LXQvdC90LDRjwokcHVyZU51bWJlcnMgPSBhcnJheSgpOyAvLyDQvNCw0YHRgdC40LIg0LrRg9C00LAg0YHQu9C+0LbQuNC8INGH0LjRgdGC0YvQtSDQvdC+0LzQtdGA0LAKJGNvcnJlY3ROdW1iZXJzID0gYXJyYXkgKCAKICAnODQ5NTEyMzQ1NjcnLCAgJys3NDk1MTIzNDU2NycsICc4LTQ5NS0xLTIzNC01NjcnLCAKICAnIDggKDgxMjIpIDU2LTU2LTU2JywgJzgtOTExLTEyMzQ1NjcnLCAnOCAoOTExKSAxMiAzNDUgNjcnLCAKICAnOC05MTEgMTIgMzQ1IDY3JywgJzggKDkxMSkgLSAxMjMgLSA0NSAtIDY3JywgJysgNyA5OTkgMTIzIDQ1NjcnLCAKICAnOCAoIDk5OSApIDEyMzQ1NjcnLCAnOCA5OTkgMTIzIDQ1NjcnCik7CmZvcmVhY2goJGNvcnJlY3ROdW1iZXJzIGFzICR2YWx1ZSkgeyAvLyDQv9C10YDQtdCx0LjRgNCw0LXQvCDQvdC+0LzQtdGA0LAKCWlmIChwcmVnX21hdGNoKCRyZWdFeHAsICR2YWx1ZSkpIHsgLy8g0L7RgtC00LXQu9GP0LXQvCDQt9C10YDQvdCwINC+0YIg0L/Qu9C10LLQtdC7LCDQt9C10YDQvdCwINC/0L7QtNC70LXQttCw0YIg0L7QsdGA0LDQsdC+0YLQutC1CgkJJHZhbCA9IHByZWdfcmVwbGFjZSAoJHBhdHRlcm4sICRyZXBsYWNlbWVudCwgJHZhbHVlKTsgLy/Rh9C40YHRgtC40Lwg0LLQuNC70LrQvtC5INC90LDRiCDQvdC+0LzQtdGAINC4INC/0YDQuNCy0L7QtNC40Lwg0Log0L7QtNC90L7QvNGDINCy0LjQtNGDCgkJJHB1cmVOdW1iZXJzW10gPSAkdmFsOyAvLyDQt9Cw0L/QuNGB0YvQstCw0LXQvCDQvtCx0YDQsNCx0L7RgtCw0L3QvdGL0Lkg0L3QvtC80LXRgCDQsiDQvNCw0YHRgdC40LIKCX0KfQoKcHJpbnRfcigkcHVyZU51bWJlcnMpOyAvL9Cj0YDQsCEhISEKCg==