<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
/*На вход скрипта дан введенный пользователем номер телефона в виде 8-911-404-44-11 
или +7(812)6786767 (в начале 8 или +7, потом идут 10 цифр и, возможно, какие-то символы). 
То есть, как и в прошлой задаче, человек вводит номер как хочет. Надо проверить номер 
на правильность и привести любой номер к единому формату 89114044411 
(то есть, заменить +7 на 8 и выкинуть весь мусор вроде пробелов, скобок и минусов, кроме цифр)
*/

$input = '77 (951) 46-47-425';

$regexp = "/^[8\\+7]{1,2}[\\s(-]*\\d{3}[\\s)(-]*(\\d[-)(\\s]?){7}$/"; /* проверяем правильность номера */

if (preg_match($regexp, $input)) {
	echo "good.\n";
}
else {
	echo "invalid phone number.\n";
	exit;
}

$phoneNumber = preg_replace('/\\A\\+\\s?7/', '8', $input); /*сначала заменяем +7 на 8 */

$phoneNumber = preg_replace('/[^\\d]/', '', $phoneNumber); /*а затем удаляем все символы отличные от [0-9] */

var_dump($phoneNumber);

?>
