Типа так как минимум:
$phone = (preg_match("/^\d{11}$/", $_=preg_replace("/\D/", "", $_POST["phone"])))?$_:null;
Но это плохое решение, нужна маска, так и пользователю удобнее и вам, так как он может накосячить все равно, например вообще решив не указать первую цифру и тп, все варианты не угадаешь, а с маской пользователь ошибется разве что намеренно, а таких нам и не надо, не поставив полю тип tel или email юзеры мобильных получат еще больше неудобств.
P.S. Давно находил на stackoverflow маску (чтобы не юзать библиотеки) и сам еще доработал, использовал у себя вроде норм.
$("[name=phone]").on('paste', (e) => {
let x = (e.target.value.substr(2) + e.originalEvent.clipboardData.getData('text/plain')).replace(/\D/g, '').match(/\d{1,10}$/);
if (x[0].length) $(e.target).val("7" + x[0]).trigger("input");
e.preventDefault();
}).on('input', (e) => {
let x = e.target.value.replace(/\D/g, '').match(/(\d{0,4})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? (x[1].length > 1 ? '+' + x[1][0] + ' (' + x[1].substr(1): '+7 (') : '+' + x[1][0] + ' (' + x[1].substr(1) + ') ' + x[2] + (x[3] ? '-' + x[3] : '');
}).trigger("input");