Verificar CPF/CNPJ em PHP

Publicado por Rodrigo Leutz em 08/03/2019

[ Hits: 3.375 ]

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

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

NTFS + Samba com o SELinux ativado

Abrindo mais de um cliente Telegram

Instalando Placa Nvidia no Fedora Core 27

Branch do git no bash

Leitura recomendada

Criando um módulo para o logotipo no Joomla 1.5

Super Scaffold - Crie aplicativos em PHP com MySQL ou PostgreSQL de forma automática

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

Projeto SER disponível

Servidor interno no PHP 5.4 para testes

  

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