ReCoHa 0 Denunciar post Postado Dezembro 7, 2010 Olá Pessoal, É o seguinte, eu tenho um sisteminha rodando num cliente meu, porém tem um dos computadores lá da empresa que insiste em não rodar o javascript contento a máscara para o telefone (##) ####-####. E o funcionário acaba colocando do jeito que ela quer: ##-####-#### ou ######-####. Gostaria então de poder validar tudo isso com o PHP também, caso venha com o formato correto não mecha em nada porém se estiver fora, deve ir pegando número por número e colocando dentro do formato padrão. Alguém já viu algo do tipo aqui pelo fórum? Procurei mas encontrei apenas máscaras javascript e isso eu já tenho rodando lá. Obrigado. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Dezembro 8, 2010 Uma vez o João fez uma aqui e eu estou utilizando ela até hoje. Você usa desta forma, só que não da para você utilizar dentro do input (igual ao javascript), mas você mascara ela no script que recebe os valores, então você remove todos os pontos e parentes do campo e depois utiliza a função ^_^ // FUNÇÃO function number_mask( $value , $mask ){ $value = preg_replace( '/[^\d]+/' , '' , $value ); if ( $mask === '#' ) return $value; else { for ( $i = 0 , $j = 0 , $t = strlen( $mask ) , $fi = $fo = null ; $i < $t ; $i++ ){ if ( ( $mask{ $i } !== '#' ) && $j ){ $fi = sprintf( '%s%%%dd' , $fi , $j ); $fo = sprintf( '%s%%0%dd%s' , $fo , $j , $mask{ $i } ); $j = 0; } elseif ( $mask{ $i } == '#' ) ++$j; else $fo .= $mask{ $i }; } if ( $j ){ $fi = sprintf( '%s%%%dd' , $fi , $j ); $fo = sprintf( '%s%%0%dd' , $fo , $j ); } return vsprintf( $fo , sscanf( $value , $fi ) ); } } //E a função você utiliza assim. $string, 'mascara' $cpf = number_mask($_POST['cpf'], '###.###.###-##'); Compartilhar este post Link para o post Compartilhar em outros sites
ReCoHa 0 Denunciar post Postado Dezembro 8, 2010 André, vou testar em cara, mas pelo que você disse dará certo sim. Já posto aqui se deu certo. Obrigado até então! Edit: André, deu certo sim cara. Se a máscara do Javascript funciona ele deixa do jeito que está, se a máscara não funciona a função trata de colocar nos moldes. Muito obrigado novamente. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites