Location: PHPKode > scripts > class_cpf > class_cpf/class_cpf.php
<?php
/*
 * Classe para validação de CNPJ
 * Copyright (c) Sebastião Farias Júnior 2002
 * Belém/PA
 * E-mail: hide@address.com
 * Licença GNU
 * Modo de usar:
 * $oCpf = new cpf;
 * if ($oCpf->verifica_cpf($cpf)){
 * echo "CPF valido";
 * }
 * else{
 * echo "CPF invalido";
 * }
 */
class cpf{
var $expressao_regular_de_cpf="[0-9]{3}\\.?[0-9]{3}\\.?[0-9]{3}-?[0-9]{2}";

/**
 * cpf::clim()
 * Tiras espaços e tabulações
 * @param $cnpj
 * @return 
 */
function clim($cpf){
$cpf=ereg_replace("[ ]*[	]*","",$cpf);
return $cpf;
}

/**
 * cpf::isNUMB()
 * verifica se digitou so numeros e tem 11 digitos
 * @param $cnpj
 * @return 
 */
function isNUMB($cpf){
	//1 - somente número e tem 11 digitos
	//0 - não e só número ou não tem 11 digitos
	$digitos=ereg_replace("[-. \t]","",$cpf);
	if(!ereg("^".$this->expressao_regular_de_cpf."\$",$digitos)){
		return 0;
		}
	return 1;
 }

/**
 * cpf::checaCPF()
 * Função que verifica se o cpf é valido ou não
 * @param $cpf
 * @return 
 */
function checaCPF($cpf) {
	if (strlen($cpf)!= 11 || $cpf == "00000000000" || $cpf == "11111111111" ||
		$cpf == "22222222222" ||	$cpf == "33333333333" || $cpf == "44444444444" ||
		$cpf == "55555555555" || $cpf == "66666666666" || $cpf == "77777777777" ||
		$cpf == "88888888888" || $cpf == "99999999999")
		return 0;
	$soma = 0;
	for ($i=0; $i < 9; $i ++)
		$soma += (int)(substr($cpf,$i,1)) * (10 - $i);
	$resto = 11 - ($soma % 11);
	if ($resto == 10 || $resto == 11)
		$resto = 0;
	if ($resto != (int)(substr($cpf,9,1)))
		return 0;
	$soma = 0;
	for ($i = 0; $i < 10; $i ++)
		$soma += (int)(substr($cpf,$i,1)) * (11 - $i);
	$resto = 11 - ($soma % 11);
	if ($resto == 10 || $resto == 11)
		$resto = 0;
	if ($resto != (int)(substr($cpf,10,1)))
		return 0;
	return 1;
 }

/**
 * cpf::verifica_cpf()
 * Função chamadora para validação do cpf
 * @param $cpf
 * @return 
 */
function verifica_cpf($cpf) {
	$cpf = $this->clim($cpf);
	if($this->isNUMB($cpf) != 1)
		{
		return 0;
		}

   if ($this->checaCPF($cpf)) {
     return 1;
   }
   else {
	 return 0;
   }
 }
}
?>
Return current item: class_cpf