Verificar CPF/CNPJ em PHP

Publicado por Rodrigo Leutz em 08/03/2019

[ Hits: 577 ]

Blog: https://www.uware.com.br

 


Verificar CPF/CNPJ em PHP



Página que verifica se o CPF/CNPJ é válido.

Segue abaixo 2 arquivos para montar a página de verificação. Deixe os 2 arquivos na mesma pasta.

index.php

<?php
/*

	Autor: Rodrigo Leutz
	Descrição: Verificar cpf/cnpj em php

*/
require "class.cpf.php";
?>
<html>
	<head>
	<title>Verificar CPF/CNPJ</title>
	<meta charset="UTF-8">
	</head>
	<body>
		<div id="container">
			<center>
				<br><br>
				<h2>Verificar CPF/CNPJ</h2>
				<br>
				<form method="post">
					<input type="text" name="cpf">
					<input type="submit" value="Verificar">
				</form>
				<?php
				if(isset($_POST['cpf'])&&!empty($_POST['cpf'])){
					$cpf = new Cpf();
					echo $cpf->check($_POST['cpf']);
				}
				?>
			</center>
		</div>
	</body>
</html>

class.cpf.php

<?php
/*

	Autor: Rodrigo Leutz
	Descrição: Verificar cpf/cnpj em php

*/
class Cpf{
	public function check($num){
		$num = str_replace(".","",$num);
		$num = str_replace("-","",$num);
		$num = str_replace("/","",$num);
		if(!is_numeric($num)){
			return "<font color='red'>Não é numero.</font>";
			exit;
		}
		if(strlen($num)=='14'){
			return $this->checkCnpj($num);
		}
		else if(strlen($num)=='11'){
			return $this->checkCpf($num);
		}
		else{
			return "<font color='red'>Quantidade de numeros inválida.</font>";
		}
	}
	private function checkCnpj($cnpj){
		$sm1 = $cnpj[0]*5+$cnpj[1]*4+$cnpj[2]*3+$cnpj[3]*2+$cnpj[4]*9+$cnpj[5]*8+$cnpj[6]*7+$cnpj[7]*6+$cnpj[8]*5+$cnpj[9]*4+$cnpj[10]*3+$cnpj[11]*2;
		$ve1=$sm1%11;
		if($ve1<2){
			$dv1=0;
		}
		else{
			$dv1=11-$ve1;
		}
		if($dv1==$cnpj[12]){
			$sm2 = $cnpj[0]*6+$cnpj[1]*5+$cnpj[2]*4+$cnpj[3]*3+$cnpj[4]*2+$cnpj[5]*9+$cnpj[6]*8+$cnpj[7]*7+$cnpj[8]*6+$cnpj[9]*5+$cnpj[10]*4+$cnpj[11]*3+$cnpj[12]*2;
			$ve2=$sm2%11;
			if($ve2<2){
				$dv2=0;
			}
			else{
				$dv2=11-$ve2;
			}			
			if($dv2==$cnpj[13]){
				return "<font color='green'>CNPJ Verdadeiro</font>";
				exit;
			}
			else{
				return "<font color='red'>CNPJ Falso</font>";
				exit;
			}
		}
		else{
			return "<font color='red'>CNPJ Falso</font>";
			exit;
		}
	}
	private function checkCpf($cpf){
		if($cpf[0]==$cpf[1]&&$cpf[1]==$cpf[2]&&$cpf[2]==$cpf[3]&&$cpf[3]==$cpf[4]&&$cpf[4]==$cpf[5]&&$cpf[5]==$cpf[6]&&$cpf[6]==$cpf[7]&&$cpf[7]==$cpf[8]&&$cpf[8]==$cpf[9]&&$cpf[9]==$cpf[10]){
			return "<font color='red'>CPF Falso(numeros repetidos)</font>";
			exit;
		}
		$v1 = $cpf[0]*10+$cpf[1]*9+$cpf[2]*8+$cpf[3]*7+$cpf[4]*6+$cpf[5]*5+$cpf[6]*4+$cpf[7]*3+$cpf[8]*2;		
		$ve1=$v1*10%11;
		if($ve1==10){
			$ve1=0;
		}
		if($ve1==$cpf[9]){
			$v2 = $cpf[0]*11+$cpf[1]*10+$cpf[2]*9+$cpf[3]*8+$cpf[4]*7+$cpf[5]*6+$cpf[6]*5+$cpf[7]*4+$cpf[8]*3+$cpf[9]*2;
			$ve2=$v2*10%11;
			if($ve2==10){
				$ve2=0;
			}
			if($ve2==$cpf[10]){
				return "<font color='green'>CPF Verdadeiro</font>";
				exit;
			}
			else{
				return "<font color='red'>CPF Falso</font>";
				exit;
			}
		}
		else{
			return "<font color='red'>CPF Falso</font>";
			exit;
		}
	}
}
?>

Outras dicas deste autor

rc.local na systemd - script de execução na inicialização do sistema

O comando "nice"

NTFS + Samba com o SELinux ativado

Tutorial GIT

Instalando Placa Nvidia no Fedora Core 27

Leitura recomendada

Facilitanto sua vida com phpMyAdmin

Instalação PHP7.3 no CentOS 7

Cursos gratuitos online de PHP orientado a objetos

Utilizando argumentos padrão em funções no PHP

Projeto SER disponível

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts