Verificar CPF/CNPJ em PHP

Publicado por Rodrigo Leutz em 08/03/2019

[ Hits: 3.057 ]

Blog: https://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

NTFS + Samba com o SELinux ativado

Tutorial GIT

Som no Linux (recompilando kernel)

Instalando Placa Nvidia no Fedora Core 27

Abrindo mais de um cliente Telegram

Leitura recomendada

Quebra de linha no PHP

Como hospedar projetos no SourceForge.net

PHPClasses.org

Solucionando erro de ArrayIterator que não recebe array

Framework Ágil usando PDO - Criando aplicativos amigáveis com facilidade

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts