Ela ajuda a formatar uma $string passada que você já tenha validado a mesma com um tamanho fixo,
pode ser usada também em conjunto com uma outra função sua, para poupar o trabalho que teria
usando ‘mais’ comandos para o retorno desejado.
<?php
/*
Função para formatar uma string automaticamente usando uma máscara especifica desejada.
Exemplos de Uso:
$_CNPJ = "11222333000199";
$_CPF = "00100200300";
$_CEP = "08665110";
$_Data = "10102010";
echo MascaraX($_CNPJ,'##.###.###/####-##');
echo MascaraX($_CPF,'###.###.###-##');
echo MascaraX($_CEP,'#####-###');
echo MascaraX($_Data,'##/##/####');
Saídas:
11.222.333/0001-99
001.002.003-00
08665-110
10/10/2010
A saída é exatamente como você definir com os '#', você pode utilizar qualquer separador, qualquer caracter, ex:
$_Data = "10102010";
echo MascaraX($_Data,'##/##/####');
echo MascaraX($_Data,'[##][##][####]');
echo MascaraX($_Data,'(##)(##)(####)');
Saídas:
10/10/2010
[10][10][2010]
(10)(10)(2010)
Exemplo esquisito que ninguém jamais utilizará:
$_Hora = "021050";
echo MascaraX($_Hora,'Agora são ## horas ## minutos e ## segundos');
echo MascaraX($_Hora,'##:##:##');
Saídas:
Agora são 02 horas 10 minutos e 50 segundos
02:10:50 (esse você vai usar, claro)
Enfim, desde que a quantidade de # seja igual a quantidade de números,
ou seja lá o que contiver a variável, porque não se limita apenas à números, poderia ser:
$_String = "adoleta";
echo MascaraX($_String,'#-##-##-##');
Saída: a-do-le-ta
$_Valor = "100000";
echo MascaraX($_Valor,'#.###,##');
Saída: 1.000,00
Pensou que era brincadeira o lance da coordenada estelar né ? tá bão!
$_Coordenada_Estelar = "10100505";
echo MascaraX($_Coordenada_Estelar,'p=(#.#,#.#,#.#,#.#)');
Saída: p=(1.0,1.0,0.5,0.5)
É isso galera, sigam as estrelas!
*/
function MascaraX($_string, $_mascara) {
$_mascara_finalizada = '';
$_posicao = 0;
for ($_x = 0; $_x<=strlen($_mascara)-1; $_x++) {
if ($_mascara[$_x] == '#') {
if (isset($_string[$_posicao])) $_mascara_finalizada .= $_string[$_posicao++];
} else {
if (isset($_mascara[$_x])) $_mascara_finalizada .= $_mascara[$_x];
}
}
return $_mascara_finalizada;
}
?>