<?php
error_reporting(-1);

$regexp = "/^\s?(8|[+]\s?7)(\s?-?\s?[(]?\s?\d\s?[)]?\s?-?\s?){10}$/";

$goodNumbers = ["8-911-123-22-22", "89111232241",
				"+7-333-123-44-22", "+7-444-222-4444",
				"8(444)234-2222", "8-(123)-999-12-23",
				"+7(222)-2334444",  "8-123-123-213-4",
				"8-911-44-888-21", "8 911 444 33 33",
				"8 (911) 555 44 44", "8 - 888 - 899 - 44 - 33",
				'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'
				];
			
$badNumbers = ["9-123-123-213-4", "666-666-666-11", "913-555-2244",
				 "8-911-33-44-66",'02', '84951234567 позвать люсю',
				 '849512345', '849512345678','8 (409) 123-123-123',
				 '7900123467', '5005005001', '8888-8888-88',
				 '84951a234567', '8495123456a',
				 '+1 234 5678901', // неверный код страны
				 '+8 234 5678901', // либо 8 либо +7
				 '7 234 5678901' // нет +
	];
			

echo "Проверка правильных телефонов:\n";
foreach ($goodNumbers as $phone) {
	if (preg_match($regexp, $phone)) {
		echo "$phone - правильный номер\n";
	} else {
		echo "$phone - неправильный номер\n";
	}
}
echo "Проверка неправильных телефонов:\n";
foreach ($badNumbers as $phone) {
	if (preg_match($regexp, $phone)) {
		echo "$phone - правильный номер\n";
	} else {
		echo "$phone - неправильный номер\n";
	}
}