Como saber o Estado de um CPF e Script Função PHP

O nono algorismo de um número de CPF representa o estado em que ele pertence. Por exemplo, dado o cpf “123.456.789-00”, temos aí o número nove na posição nona. Com base neste número você pode dizer que este cpf pertence ao estado de Santa Catarina ou Paraná. Veja a tabela abaixo:

0 Rio Grande do Sul
1 Distrito Federal, Goiás, Mato Grosso do Sul e Tocantins
2 Acre, Amapá, Amazonas,Pará, Rondonia e Roraima
3 Ceará, Maranhão, Piauí
4 Alagoas, Paraíba, Pernambuco e Rio Grande do Norte
5 Bahia e Sergipe
6 Minas Gerais
7 Espírito Santo e Rio de Janeiro
8 São Paulo
9 Paraná e Santa Catarina

Script ou Função PHP para pegar estado de um CPF

Com base na tabela acima fica fácil criar um script PHP para saber a qual estado pertende qualquer CPF. Veja o código abaixo, explico ele depois:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function get_cpf_estado($cpf){
    
    $estados = array();
    $estados[] = 'Rio Grande do Sul';
    $estados[] = 'Distrito Federal, Goiás, Mato Grosso do Sul e Tocantins';
    $estados[] = 'Acre, Amapá, Amazonas,Pará, Rondonia e Roraima';
    $estados[] = 'Ceará, Maranhão, Piauí';
    $estados[] = 'Alagoas, Paraíba, Pernambuco e Rio Grande do Norte';
    $estados[] = 'Bahia e Sergipe';
    $estados[] = 'Minas Gerais';
    $estados[] = 'Espírito Santo e Rio de Janeiro';
    $estados[] = 'São Paulo';
    $estados[] = 'Paraná e Santa Catarina';
 
    $cpf = preg_replace('/[^0-9]/','',$cpf);
    $cpf = str_split($cpf);
 
    return $estados[$cpf[8]];
}
 
 
$cpf = '123.456.789-00';
 
echo get_cpf_estado($cpf);
function get_cpf_estado($cpf){
	
	$estados = array();
	$estados[] = 'Rio Grande do Sul';
	$estados[] = 'Distrito Federal, Goiás, Mato Grosso do Sul e Tocantins';
	$estados[] = 'Acre, Amapá, Amazonas,Pará, Rondonia e Roraima';
	$estados[] = 'Ceará, Maranhão, Piauí';
	$estados[] = 'Alagoas, Paraíba, Pernambuco e Rio Grande do Norte';
	$estados[] = 'Bahia e Sergipe';
	$estados[] = 'Minas Gerais';
	$estados[] = 'Espírito Santo e Rio de Janeiro';
	$estados[] = 'São Paulo';
	$estados[] = 'Paraná e Santa Catarina';

	$cpf = preg_replace('/[^0-9]/','',$cpf);
	$cpf = str_split($cpf);

	return $estados[$cpf[8]];
}


$cpf = '123.456.789-00';

echo get_cpf_estado($cpf);

Então, para saber a qual estado pertence um dado CPF, basta passar o próprio CPF como parâmetro para a função get_cpf_estado, que o retorno será exatamente o estado ou possíveis estados a que ele pertence.

A função trabalha da seguinte forma:

a) Cria um array contendo os estados, com um detalhe importante: tem como índice exatamente o número que correspondente na tabela que foi exibida no início deste artigo.

b) Limpa o CPF, deixando apenas números com a função preg_replace. Lembrando que preg_replace trabalha com expressão regular, por isso foi utilizado como parâmetro “/[^0-9]/”. Esta expressão regular trabalha “casa” qualquer coisa que não esteja entre 0 e 9, ou seja: os números.

c) Na sequência, a string com os números do CPF é convertida em um array através da função str_split. Uma vez que convertemos a string de 11 dígitos em um array, fica fácil pegar o número da nona posição: desta forma $cpf[8]. Perceba que o array inicia com índice 0, então para obter o nono, deve-se acessar o índice 8.

d) Agora que já se tem qual é o número da nona posição do CPF, basta pegar o valor do array $estados no índice que corresponda a tal número: desta forma: $estados[$cpf[8]].

Desculpas

Pessoal, sei que a explicação do funcionamento do script está bastante mastigadinha, mas acredito que isso vai ser útil para quem é iniciante e não domina bem a linguagem de programação PHP. Em todo caso, fica aí mais essa dica e até o próximo artigo aqui no blog

One Response

  1. Webmaster maio 31, 2019

Leave a Reply