Verificar CPF/CNPJ em PHP

Publicado por Rodrigo Leutz em 08/03/2019

[ Hits: 3.062 ]

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

Instalando Placa Nvidia no Fedora Core 27

Abrindo mais de um cliente Telegram

Slackware 12 com ipw3945 + wpa-psk

Som no Linux (recompilando kernel)

O comando "nice"

Leitura recomendada

Curso online e gratuito de CakePHP

Framework Ágil - Criando aplicativos amigáveis e com simplicidade

Conhecendo melhor o PHP

Ícones livres para sistemas web

Joomla 3.6.x - Resolvendo problema com instalação de extensões

  

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