To fazendo uma formatação de texto, so que ta tudo errado.
Segue abaixo o um teste que fiz:
Teste 01
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <?php $nome = "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ"; $formatado = preg_replace("[a-zA-Z0-9]", "", strtr($nome, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_")); $formatado = preg_replace("[ ]","",$formatado); $formatado = preg_replace("[^]","",$formatado); $formatado = preg_replace("[´]","",$formatado); $formatado = preg_replace("[`]","",$formatado); $formatado = preg_replace("[~]","",$formatado); $formatado = preg_replace("[¨]","",$formatado); $formatado = preg_replace("[_]","",$formatado); $formatado = strtolower($formatado); echo $formatado; ?> </body> </html>
Resultado final é este: aaeoouaaeiouc�������������
----
Teste 02
<html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php $nome = "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ"; $formatado = preg_replace("[a-zA-Z0-9]", "", strtr($nome, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_")); $formatado = preg_replace("[ ]","",$formatado); $formatado = preg_replace("[^]","",$formatado); $formatado = preg_replace("[´]","",$formatado); $formatado = preg_replace("[`]","",$formatado); $formatado = preg_replace("[~]","",$formatado); $formatado = preg_replace("[¨]","",$formatado); $formatado = preg_replace("[_]","",$formatado); $formatado = strtolower($formatado); echo $formatado; ?> </body> </html>
Resultado final é este: aaeoouaaeiouc€ƒ‚‰š“”•šœ‡
Alguem pode me dizer o que esta acontecendo?
PS: eu não sei porque diabos quando eu posto o codigo ele ta quebrando a linha no $nome e no primeiro $formatado.. no meu codigo original não esta assim
Edição feita por: Max William, 26/02/2010, 18:33.