<?php

error_reporting(-1);

$number = '+7 (905) 821-35-21'; // пользователь прислал номер
$number = preg_match('/^(\+\s?7|8)([-\s()]*\d){10}$/', $number, $matches); // проверяем корректность
$number = preg_replace('/[-\s()]*/', '', $matches[0]); // очищаем от тире, пробелов и скобок
$number = preg_replace('/\+7/', '8', $number); // заменяем +7 на 8

echo $number;