Ir ao conteúdo
  • Cadastre-se

Como formatar números em PHP?


Rosalvo Luiz

Posts recomendados

Olá!

Preciso passar um número para o formato de CNPJ, CPF, CEP, etc.

Ex.: 12345678912 p/ 123.456.789-12

Tentei o "format_number()", mas não funciona neste caso, tudo que ele faz é transformar em decimal no qual você limita o número de zeros depois da virgula ex.: 12.345.678.912,00.

Queria saber se existe um modo de colocá-lo do jeito que nós queremos...

Abraços

Link para o comentário
Compartilhar em outros sites

É o seguinte:

Tenho no banco de dados o cpf dos clientes, eles estão sem formatação ex: 12345678912

As máscaras que encontrei na internet, são para quando se digita um campo (no meu caso ele já existe), e vai atualizando ou informando que está incorreto.

no meu caso uso o cpf como "username", ele está sem formatação e a quantidade de clientes no BD é grande.

é um BD de empregos, os dados foram inseridos assim, agora, quero que o cliente verifique seus dados mas já com a formatação correta, 123.456.789-12.

Pode ser que exista uma outra forma de fazê-lo, porém não estou conseguindo pensar em nenhuma no momento.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Tendi!

Bem, o padrão dos números de CPF são de 11 caracteres, 9 antes do dígito e 2 depois. O que eu vou fazer abaixo consiste no seguinte:

- determinar a variável que receberá o número

- separar esse número entre os dois últimos (depois do dígito) e os primeiros (antes do dígito)

- como a parte dos dígitos sempre é padrão (2 caracteres), vamos formatar a parte inicial, que nem sempre possui 9 caracteres, e também porque receberá o "ponto (.)".

- depois de tudo formatado, juntamos de novo.

Utilizando funções comuns podemos fazer assim (dando um exemplo de CPF sem os 9 caracteres iniciais):

 
<?

$numero = "45645823";

// pego o digito do cpf, que sempre tem 2 números
$digitos = substr($numero,-2);

// aqui eu pego a primeira parte do CPF, o que seria antes do dígito
// pegando toda a variável e retirando os dois últimos números
$numeros = substr($numero,0,strlen($numero)-2);

// formato a primeira parte com 9 caracteres
// digo para preencher com zeros caso falte caracteres
$numeros = sprintf("%09s",$numeros);

// divido a variável em 3 partes de 3 caracteres cada uma
$parte1 = substr($numeros,0,3);
$parte2 = substr($numeros,3,3);
$parte3 = substr($numeros,6,3);

// formato a saída
$cpfMascarado = $parte1.'.'.$parte2.'.'.$parte3.'-'.$digitos;

// imprimirá 000.456.458-23
echo $cpfMascarado;

?>

Espero que tenha lhe ajudado. Pro restante é só dar uma adaptada simples aí.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!