Well, one of the easiest things to do is remove all non-digit characters. Then count the number of numbers in the string. If it's not 10 (for US numbers) or 11 or 12 (for international numbers from US) then it's a good bet it's not valid.
Something like...
$phone = $_POST['phone'];
$len = strlen(ereg_replace('[^0-9]', '', $phone));
if($len >=10 && $len<=12) { echo 'Valid Number!!'; }
else { echo 'Invalid Number :('; }
You can then format it as you wish.... but without actually calling the number, there's no "full-proof" way to determine whether it's a valid number....