Verificar CPF/CNPJ em PHP

Publicado por Rodrigo Leutz em 08/03/2019

[ Hits: 3.825 ]

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

O comando "nice"

Instalando Placa Nvidia no Fedora Core 27

NTFS + Samba com o SELinux ativado

Abrindo mais de um cliente Telegram

Som no Linux (recompilando kernel)

Leitura recomendada

Configurando date.timezone do PHP no Fedora 9

Conhecendo melhor o PHP

Site com bons recursos para Joomla

Função em PHP que mostra o número da semana no ano

Como hospedar projetos no SourceForge.net

  

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