PHP – Validaciones – preg_match phone
Función que nos indica si un número de teléfono es correcto y pertenece a un fijo español, se detecta los primeros números para determinar la provincia.
El formato español contempla una longitud de 9 números.
/**
* Class HelperValidate
*/
abstract class HelperValidate
{
/**
* Valida si es un número de telefono fijo
*
* @param string $tel
*
* @return bool
*/
public static function isPhoneFix($tel)
{
$tel = trim($tel);
$ok_1 = (preg_match("/^[0-9]+$/", $tel) &&
strlen($tel) == 9);
$codigo = intval(substr($tel, 0, 2));
switch ($codigo) {
case 91: // -- Madrid
case 93: // -- Barcelona
case 94: // -- Vizcaya
case 95: // -- Sevilla
case 96: // -- Alicante
case 98: // -- Asturias
$ok_provincia_2 = true;
break;
default:
$ok_provincia_2 = false;
break;
}
$codigo = intval(substr($tel, 0, 3));
switch ($codigo) {
case 923: // -- Salamanca
case 973: // -- Lleida
case 921: // -- Segovia
case 926: // -- Ciudad Real
case 975: // -- Soria
case 977: // -- Tarragona
case 920: // -- Avila
case 922: // -- Tenerife
case 924: // -- Badajoz
case 972: // -- Girona
case 978: // -- Teruel
case 971: // -- Baleares
case 925: // -- Toledo
case 979: // -- Palencia
case 927: // -- Cáceres
case 928: // -- Palmas, Las
case 974: // -- Huesca
case 976: // -- Zaragoza
$ok_provincia_3 = true;
break;
default:
$ok_provincia_3 = false;
break;
}
return (($ok_provincia_2 || $ok_provincia_3) &&
$ok_1);
}
}
