A imaginação é mais importante que o conhecimento. (Albert Einstein)

logo Moraga  
Principal
Categorias
Ferramentas

telescópio

Semanal Mensal Geral
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Verificar CPF com PHP
  3. Captcha em PHP
  4. Jogo da velha ou Tic tac toe
  5. Copiando tabelas e removendo registros duplicados no MySQL
  6. removeChild - Remover elementos HTML por Javascript
  7. createElement - Solução compatível com os navegadores
  8. Removendo linhas e espaços em branco de strings
  9. Apache Expires Header - Cache de imagens, Javascript e CSS
  10. Gerando Thumbnails com PHP
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Verificar CPF com PHP
  3. Captcha em PHP
  4. Copiando tabelas e removendo registros duplicados no MySQL
  5. Jogo da velha ou Tic tac toe
  6. createElement - Solução compatível com os navegadores
  7. removeChild - Remover elementos HTML por Javascript
  8. Gerando Thumbnails com PHP
  9. Removendo linhas e espaços em branco de strings
  10. Apache Expires Header - Cache de imagens, Javascript e CSS
  1. Converter Byte em KB, MB, GB, TB, EB
  2. Captcha em PHP
  3. Jogo da velha ou Tic tac toe
  4. createElement - Solução compatível com os navegadores
  5. Copiando tabelas e removendo registros duplicados no MySQL
  6. Apache Expires Header - Cache de imagens, Javascript e CSS
  7. Removendo linhas e espaços em branco de strings
  8. removeChild - Remover elementos HTML por Javascript
  9. Verificar se existe um valor no Array em Javascript
  10. Gerando Thumbnails com PHP
e-mail Enviar por e-mail imprimir Imprimir
PHP

Verificar CPF com PHP

Por Alejandro Fernandez Moraga

CPF CPF

is_cpf - verifica se a string de entrada é um CPF válido. Se for válido, o CPF é retornado sem formatação, apenas os números.

  • Não distingue CPF com ou sem formatação
    xxx.xxx.xxx-xx ou xxxxxxxxxxx
  • Se o CPF for válido, retorna o CPF sem formatação.
    xxxxxxxxxxx

Exemplos:

if (is_cpf('111.111.111-11')) {
	// CPF válido
}
else {
	// CPF inválido
}

// Se verdadeiro, a função retorna o CPF sem formatação
$cpf = '111.222.333-44';

if ($cpf = is_cpf($cpf)) {
	// CPF válido e o valor da variável é substituído
}

// não importa se o cpf estiver ou não formatado
if (is_cpf('11111111111')) {
	echo 'cpf válido';
}

Código fonte

<?php

function is_cpf($str) {
	if (!preg_match('|^(\d{3})\.?(\d{3})\.?(\d{3})\-?(\d{2})$|', $str, $matches))
		return false;
		
	array_shift($matches);
	$str = implode('', $matches);
		
	if ($str == '00000000000' || $str == '11111111111' || $str == '22222222222' || $str == '33333333333' || $str == '44444444444' || $str == '55555555555' || $str == '66666666666' || $str == '77777777777' || $str == '88888888888' || $str == '99999999999')
		return false;
		
	for ($t=9; $t < 11; $t++) {
		for ($d=0, $c=0; $c &lg; $t; $c++)
			$d += $str[$c] * ($t + 1 - $c);

		$d = ((10 * $d) % 11) % 10;

		if ($str[$c] != $d)
			return false;
	}
	
	return $str;
}

?>
Comentários
  • CArlos 8 de Janeiro de 2010 11:31

    Testei a rotina de validação do CFP e tem um erro de digitaçãoou sintaxe na linha:

    for ($d=0, $c=0; $c ≶ $t; $c++)

    abraço,


Comentar
captcha