Skip to content

Commit

Permalink
Tratamento caracteres especiais. Resolve #5. Resolve #6.
Browse files Browse the repository at this point in the history
  • Loading branch information
renatomb committed Jul 17, 2021
1 parent 5b1471c commit e0948fa
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion funcoes_pix.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ function montaPix($px){
foreach ($px as $k => $v) {
if (!is_array($v)) {
if ($k == 54) { $v=number_format($v,2,'.',''); } // Formata o campo valor com 2 digitos.
else { $v=remove_char_especiais($v); }
$ret.=c2($k).cpm($v).$v;
}
else {
Expand All @@ -32,7 +33,44 @@ function montaPix($px){
}
}
return $ret;
}
}

function remove_char_especiais($txt){
/*
# Esta função retorna somente os caracteres alfanuméricos (a-z,A-Z,0-9) de uma string.
# Caracteres acentuados são convertidos pelos equivalentes sem acentos.
# Emojis são removidos.
#
# Autor: Eng. Renato Monteiro Batista
*/
return preg_replace('/\W/','',remove_acentos($txt));
}

function remove_acentos($texto){
/*
# Esta função retorna uma string substituindo os caracteres especiais de acentuação
# pelos respectivos caracteres não acentuados em português-br.
#
# Autor: Eng. Renato Monteiro Batista
*/
$search = explode(",","à,á,â,ä,æ,ã,å,ā,ç,ć,č,è,é,ê,ë,ē,ė,ę,î,ï,í,ī,į,ì,ł,ñ,ń,ô,ö,ò,ó,œ,ø,ō,õ,ß,ś,š,û,ü,ù,ú,ū,ÿ,ž,ź,ż,À,Á,Â,Ä,Æ,Ã,Å,Ā,Ç,Ć,Č,È,É,Ê,Ë,Ē,Ė,Ę,Î,Ï,Í,Ī,Į,Ì,Ł,Ñ,Ń,Ô,Ö,Ò,Ó,Œ,Ø,Ō,Õ,Ś,Š,Û,Ü,Ù,Ú,Ū,Ÿ,Ž,Ź,Ż");
$replace =explode(",","a,a,a,a,a,a,a,a,c,c,c,e,e,e,e,e,e,e,i,i,i,i,i,i,l,n,n,o,o,o,o,o,o,o,o,s,s,s,u,u,u,u,u,y,z,z,z,A,A,A,A,A,A,A,A,C,C,C,E,E,E,E,E,E,E,I,I,I,I,I,I,L,N,N,O,O,O,O,O,O,O,O,S,S,U,U,U,U,U,Y,Z,Z,Z");
return remove_emoji(str_replace($search, $replace, $texto));
}

function remove_emoji($string){
/*
# Esta função retorna o conteúdo de uma string removendo oas caracteres especiais
# usados para representação de emojis.
#
*/
return preg_replace('%(?:
\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)%xs', ' ', $string);
}


function cpm($tx){
/*
Expand Down

0 comments on commit e0948fa

Please sign in to comment.