str_replace não substitui caracter quando utilizo utf8_decode.

628 views
Skip to first unread message

Guilherme Longo

unread,
Nov 4, 2011, 4:22:57 PM11/4/11
to php-b...@googlegroups.com
Pessoal, estou com um problema aqui:

Tenho um banco de dados mysql todo em UTF8

Tenho um campo que o valor no banco é "Anéis"
quando recupero esse valor ele vem como -> Anél

Eu até consigo trabalhar com essa string corretamente porem eu preciso dela sem acento para criar um diretório.
O procedimento que estou usando é o seguinte

$dirnovo = $HTTP_POST_VARS['categories_name'][$languages[$i]['id']]; <- aqui tenho a string em utf8 (só que o diretório é criado com o nome daquela string estranha "Anél" então eu faço:
$dirnovoISO = utf8_decode($dirnovo); <- aqui tenho ela acentuada normal e consigo criar o diretório com o nome acentuado.
//Agora para tirar o acento dessa nova string eu estou fazendo o seguinte, mas não funciona. O acento continua.
$acentos = array("Á","É","Í","Ó","Ú","Â","Ê","Î","Ô","Û","Ã","Õ","Ç","á","é","í","ó","ú","â","ê","î","ô","û","ã","õ","ç"," ","@","#","!","&","ª","º","%");
$semacentos = array("A","E","I","O","U","A","E","I","U","O","A","O","C","a","e","i","o","u","a","e","i","o","u","a","o","c","_","a","_","_","e","a","o","_");
$dirnovoISOsemacento = str_replace($acentos,$semacentos,$dirnovoISO);

o str_replace não remove o acento (substitui o caracter) se eu uso o utf8_decode na string. Alguem pode me dar uma ajuda?
Muito obrigado

Eduardo Kraus

unread,
Nov 4, 2011, 9:08:16 PM11/4/11
to php-b...@googlegroups.com
Ola

Para isso temos o utf8_encode e o utf8_decode.

Eduardo Kraus

Professor 

+55 48 8843-3423
kr...@eduardokraus.com
www.eduardokraus.com
www.twitter.com/EduardoKraus



--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.

Guilherme Longo

unread,
Nov 5, 2011, 3:44:39 AM11/5/11
to php-b...@googlegroups.com
Entao amigo. Conheco essas duas funções.... só não entendi como trabalhar com elas no meu código.
Vc entendeu minha situação.

queria saber se o str_replace funciona ou não com uma string codificada com utf8_encode e se funciona, se existe algum macete pois não consigui achar nada.

Alguem poderia me dar uma luz em como eu poderia resolver isso. Estou pesquisando a 2 dias e não consigo achar respostas.

muito obrigado

2011/11/4 Eduardo Kraus <eduard...@gmail.com>

Eduardo Augusto Oliveira Silva

unread,
Nov 4, 2011, 9:11:49 PM11/4/11
to php-b...@googlegroups.com
precisa ver se a página html está sendo feita em utf8 ou iso

Ninetails - Carlos Kazuo

unread,
Nov 5, 2011, 6:01:01 AM11/5/11
to php-b...@googlegroups.com
toda vez que conectar ao banco, execute a query

"SET NAMES utf8;"

é importante também que todas as páginas que vc trabalhe (tanto php quanto html) estejam também em utf-8

aí vc n vai precisar depender das funções utf8_



mas caso ainda der problemas, vc pode tentar ir pras funções multibyte ( http://br.php.net/mb_string )

--------------------------------------------------
/**
 * @author Ninetails - Carlos Kazuo <ninetails.nine [at] gmail.com>
 */


2011/11/4 Eduardo Augusto Oliveira Silva <eduardo.ol...@gmail.com>
Reply all
Reply to author
Forward
0 new messages