PHP – Função para verificar e adicionar o 9 (nono) digito ao número de telefone celular

Fernando Valler 27/12/2019 PHP


Quando aconteceu a mudança para o nono digito muitos tiveram que adicionar mais um campo em seu banco ou mesmo criar uma forma de adicionar automaticamente o nono digito os números existentes.

Passei por uma situação em que teria que verificar se o número era de celular e adicionar caso não existisse o nono digito.

Você pode adicionar as funções em uma class que já exista ou mesmo usar em separado.

Para usar basta chamar a função numeroNonoDigito(numero_telefone) passando o numero desejado. Ela vai chamar outras duas funções responsáveis por verificar e padronizar o numero informado adicionando ou não o nono digito.

//Faz adicao do nono digito
function numeroAjuste($numero)
{
	//Se numero tem 11 digitos nao faz nada
	if(strlen($numero) == 11)
		return $numero;

	//se numero tem 10 digitos verifica
	if(strlen($numero) == 10){

		//Pega ddd e numero
		$ddd = substr($numero, 0, 2);
		$num = str_replace($ddd, '', $numero);

		//Verifica se é celular, se nao for retorno o proprio numero
		if($num[0] == 2 || $num[0] == 3){
			return $numero;
		}

		//se for celular, so tem 8 numeros, adiciona o 9
		if(strlen($num) == 8){
			$num = "9{$num}";
		}

		return "{$ddd}{$num}";
	}
}

//Limpa o numero removendo caracteres
function numeroSanitize($numero)
{
	return preg_replace('/[^0-9]/', '', $numero);
}


function numeroNonoDigito($numero)
{
	if(empty($numero))
		return '';

	$numero_ = numeroSanitize($numero);
	$numero_ = numeroAjuste($numero_);

	return $numero_;
}

Fernando Valler - Programador Web
Fernando Valler

Sou programador web, motivado por desafios e sempre buscando aprender algo novo. Aqui você pode encontrar alguns projetos.