Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,Galera gostaria de saber qual a melhor função do php, para remover os caracteres do cnpj exemplo 00.000.000/0000-00 (./-) para que possa valida, mais que depois possa colocar de novo para inseri no banco?abraço.. :rolleyes:
Você pode usar o str_replace : Exemplo :
$valida_cnpj = str_replace ( '.' , '' , $_POST['cnpj']);$valida_cnpj = str_replace ( '/' , '' , $valida_cnpj );$valida_cnpj = str_replace ( '-' , '' , $valida_cnpj );
ou pode usar também ER (expressão regular) - não acho que haja necessidade pra isso :
$valida_cnpj = preg_replace('/[[:punct:]]/', '', $_POST['cnpj']);
Bom dia,Galera gostaria de saber qual a melhor função do php, para remover os caracteres do cnpj exemplo 00.000.000/0000-00 (./-) para que possa valida, mais que depois possa colocar de novo para inseri no banco?abraço.. :rolleyes:
tem uma função pronta pra validação... tenta usa ela!$cnpj=$_POST['cnpj'];function valCnpj($Cnpj){ $RecebeCNPJ=${"Cnpj"}; $s=""; for ($x=1; $x<=strlen($RecebeCNPJ); $x=$x+1) { $ch=substr($RecebeCNPJ,$x-1,1); if (ord($ch)>=48 && ord($ch)<=57) { $s=$s.$ch; } } $RecebeCNPJ=$s; if ($RecebeCNPJ=="00000000000000") { $then; return FALSE; }else{ $Numero[1]=intval(substr($RecebeCNPJ,1-1,1)); $Numero[2]=intval(substr($RecebeCNPJ,2-1,1)); $Numero[3]=intval(substr($RecebeCNPJ,3-1,1)); $Numero[4]=intval(substr($RecebeCNPJ,4-1,1)); $Numero[5]=intval(substr($RecebeCNPJ,5-1,1)); $Numero[6]=intval(substr($RecebeCNPJ,6-1,1)); $Numero[7]=intval(substr($RecebeCNPJ,7-1,1)); $Numero[8]=intval(substr($RecebeCNPJ,8-1,1)); $Numero[9]=intval(substr($RecebeCNPJ,9-1,1)); $Numero[10]=intval(substr($RecebeCNPJ,10-1,1)); $Numero[11]=intval(substr($RecebeCNPJ,11-1,1)); $Numero[12]=intval(substr($RecebeCNPJ,12-1,1)); $Numero[13]=intval(substr($RecebeCNPJ,13-1,1)); $Numero[14]=intval(substr($RecebeCNPJ,14-1,1)); $soma=$Numero[1]*5+$Numero[2]*4+$Numero[3]*3+$Numero[4]*2+$Numero[5]*9+$Numero[6]*8+$Numero[7]*7+ $Numero[8]*6+$Numero[9]*5+$Numero[10]*4+$Numero[11]*3+$Numero[12]*2; $soma=$soma-(11*(intval($soma/11))); if ($soma==0 || $soma==1) { $resultado1=0; }else{ $resultado1=11-$soma; } if ($resultado1==$Numero[13]) { $soma=$Numero[1]*6+$Numero[2]*5+$Numero[3]*4+$Numero[4]*3+$Numero[5]*2+$Numero[6]*9+ $Numero[7]*8+$Numero[8]*7+$Numero[9]*6+$Numero[10]*5+$Numero[11]*4+$Numero[12]*3+$Numero[13]*2; $soma=$soma-(11*(intval($soma/11))); if ($soma==0 || $soma==1) { $resultado2=0; }else{ $resultado2=11-$soma; } if ($resultado2==$Numero[14]) { return TRUE; }else{ return FALSE; } }else{ return FALSE; } }}$valida= valCNPJ($cnpj);if ($valida == true) {print("CNPJ válido");} else {print("CNPJ inválido");}Por exemplo://RETIRA PONTOS E BARRAS DO CNPJ$cnpj = preg_replace( "@[./-]@", "", $cnpj );$cep = preg_replace( "@[-]@", "", $cep );$fone = preg_replace( "@[()-]@", "", $fone );estou usando assim, mais como eu faço para colocar os caracteres que remove de volta para pode inseri os dados no banco?
Ai você vai ter que concatenar usando o substr:
<?php $cnpj = "00000000000000"; echo preg_replace("/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/", "\\1.\\2.\\3/\\4-\\5", $cnpj);?>
Com CEP e telefone é a mesma lógica.
Flws...
;)
>
<?php $cnpj = "00000000000000"; echo preg_replace("/^(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/", "\\1.\\2.\\3/\\4-\\5", $cnpj);?>Com CEP e telefone é a mesma lógica.Flws... ;)
Valeu Frenesi..Tah funcionando belezinha, era isso mesmo que queria simples e pratico.abraço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
http://br.php.net/manual/pt_BR/function.str-replace.php