Aplicando Máscaras em Dados no PHP

Durante o desenvolvimento de sistemas, é comum a necessidade de formatar dados para exibição, como CPF, CNPJ e CEP. A boa prática recomenda armazenar esses dados no banco em seu formato “puro”, sem caracteres de formatação, garantindo maior flexibilida…


This content originally appeared on DEV Community and was authored by Bruno Oliveira

Durante o desenvolvimento de sistemas, é comum a necessidade de formatar dados para exibição, como CPF, CNPJ e CEP. A boa prática recomenda armazenar esses dados no banco em seu formato “puro”, sem caracteres de formatação, garantindo maior flexibilidade e integridade.

Entretanto, na apresentação de relatórios, notas fiscais ou telas de exibição, a formatação adequada desses dados melhora a legibilidade e a experiência do usuário. Para isso, podemos criar uma solução genérica e reutilizável no PHP.

Criando um Helper para Máscaras

Vamos implementar uma classe MaskHelper que permitirá aplicar máscaras de forma dinâmica aos dados.

<?php

namespace App\Helpers;

final class MaskHelper
{
    private const MASK_CHAR = '#';

    public static function mask(string $value, string $format): string
    {
        $cleanValue = self::clean($value);
        if ($cleanValue === '' || $format === '') {
            return $value;
        }

        $masked = '';
        $index = 0;

        foreach (str_split($format) as $char) {
            $masked .= ($char === self::MASK_CHAR && isset($cleanValue[$index]))
                ? $cleanValue[$index++]
                : $char;
        }

        return $masked;
    }

    public static function cpf(string $value): string
    {
        return self::mask($value, '###.###.###-##');
    }

    public static function cnpj(string $value): string
    {
        return self::mask($value, '##.###.###/####-##');
    }

    public static function cpfCnpj(string $value): string
    {
        return match (strlen(self::clean($value))) {
            11 => self::cpf($value),
            14 => self::cnpj($value),
            default => $value,
        };
    }

    private static function clean(string $value): string
    {
        return preg_replace('/\D/', '', $value) ?? '';
    }
}

Como Utilizar a Classe

A implementação acima permite aplicar máscaras facilmente aos dados, tornando a formatação mais flexível e reutilizável em toda a aplicação. Veja alguns exemplos de uso:

<php

use App\Helpers\MaskHelper;

$cpf = '12345678900';
echo MaskHelper::cpf($cpf); // Saída: 123.456.789-00

$cnpj = '12345678098700';
echo MaskHelper::cnpj($cnpj); // Saída: 12.345.678/0987-00

$documento = '12345678900';
echo MaskHelper::cpfCnpj($documento); // Detecta e aplica a máscara correta

$cep = '1234567';
echo MaskHelper::mask($cep, '##.###-##'); // Saída: 12.345-67

Conclusão

A classe MaskHelper permite padronizar e reutilizar a formatação de dados em um sistema PHP, melhorando a manutenção do código e a experiência do usuário. Esse tipo de abordagem é útil para exibição de dados em relatórios, telas de administração e formulários.

Caso precise de outras máscaras, basta chamar o método mask() com o formato desejado, tornando a solução altamente flexível!


This content originally appeared on DEV Community and was authored by Bruno Oliveira


Print Share Comment Cite Upload Translate Updates
APA

Bruno Oliveira | Sciencx (2025-03-07T19:07:29+00:00) Aplicando Máscaras em Dados no PHP. Retrieved from https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/

MLA
" » Aplicando Máscaras em Dados no PHP." Bruno Oliveira | Sciencx - Friday March 7, 2025, https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/
HARVARD
Bruno Oliveira | Sciencx Friday March 7, 2025 » Aplicando Máscaras em Dados no PHP., viewed ,<https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/>
VANCOUVER
Bruno Oliveira | Sciencx - » Aplicando Máscaras em Dados no PHP. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/
CHICAGO
" » Aplicando Máscaras em Dados no PHP." Bruno Oliveira | Sciencx - Accessed . https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/
IEEE
" » Aplicando Máscaras em Dados no PHP." Bruno Oliveira | Sciencx [Online]. Available: https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/. [Accessed: ]
rf:citation
» Aplicando Máscaras em Dados no PHP | Bruno Oliveira | Sciencx | https://www.scien.cx/2025/03/07/aplicando-mascaras-em-dados-no-php/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.