Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

01-11-2008 19:49

Olá,
Estou utilizando uma função para deixar uma palavra adequada para se tornar URL.

Eu testei com uma palavra normal e tal, e funcionou perfeitamente, mas quando fui usar com uma palavra resgatada do banco de dados, tive problemas.

A função é essa:

function convertUrl($texto) { $separador = "-"; $texto = ereg_replace("[^a-zA-Z0-9 ]", "", strtr(strtolower($texto), "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC ")); $texto = eregi_replace("[[:space:]]", $separador, $texto); $texto = eregi_replace("($separador)+", $separador, $texto); $texto = eregi_replace("(^($separador)+)|(($separador)+$)", "", $texto); $texto = substr($texto, 0, 100); return $texto; } 

A palavra é esta: Idéia brilhante.

Que deveria ficar Idéia Brilhante, o charset do mysql é latin1_swedish_ci, e o charset da index é UTF-8, já mudei pra ISO-8859-1, mas não adiantou, continuou normal, e deu foi mais problema nos acentos da página, então tenho que usar UTF-8 mesmo.

Mas em fim, alguém pode me ajudar pra que a função funcione com a palavra resgatada do DB?

Abraços.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

01-11-2008 21:25

O problema é só retonar as palavras sem acênto ou ou CHARSET também?
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

01-11-2008 23:29

É por que é o seguinte, quando eu resgato esse valor no banco de dados e exibo ele, fica normal (Idéia brilhante.) e com o uso dessa função que postei anteriormente ele deveria ficar assim: "ideia-brilhante". Isso eu testei colocando esse nome numa string qualquer, mais quando eu resgato do banco de dados e uso a função, ele fica assim: "idia-brilhante", ou seja, o caractere que tem acento some, não sei por que, entendeu?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

01-11-2008 23:53

já tive esse problema também, eu resolvei assim

function tirando($palavra) { $palavra = str_replace(" ", "-", $palavra); $palavra = str_replace("ç", "c", $palavra); $palavra = str_replace("Ç", "C", $palavra); $palavra = ereg_replace( "[ÁÀÂÃÄ]", "A", $palavra); $palavra = ereg_replace( "[áàâãäª]", "a", $palavra); $palavra = ereg_replace( "[ÉÈÊË]", "E", $palavra); $palavra = ereg_replace( "[éèêë]", "e", $palavra); $palavra = ereg_replace( "[ÍÌÎÏ]", "I", $palavra); $palavra = ereg_replace( "[íìîï]", "i", $palavra); $palavra = ereg_replace( "[ÓÒÔÕÖ]", "O", $palavra); $palavra = ereg_replace( "[óòôõöº]", "o", $palavra); $palavra = ereg_replace( "[ÚÙÛÜ]", "U", $palavra); $palavra = ereg_replace( "[úùûü]", "u", $palavra); return $palavra; } 

E na variável

echo tirando("$variavel");
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 01:33

Cara não funcionou. :/
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 09:05

Passa ai como ficou seu script
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 13:12

Então, exemplo:

$query = "QUERY QUALQUER"; while($dados = mysql_fetch_array($query) { desbuga($dados['titulo']; } 

No caso o desbuga ali é a função que você passou anteriormente.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 13:17

desbuga($dados['titulo'];

Se desbuda é uma função com base na que indiquei deveria estar assim:

echo desbuga($dados['title']);
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 14:26

Tá desse jeito, isso foi na hora de digitar aqui que errei, mas no código tá desse jeito, mas não funciona.. ele não remove os bugs de acentuação dos registros vindos do mysql.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 14:29

Esse script ai foi o que usei aqui quando precisei transformar algumas frases em link, tipo:

VEIO ASSIM
Paginação mysql

FICOU ASSIM
Paginacao-mysql

Revê ai o que você fez se está de acordo com o indicado, se possível posta um print ou indica um URL até o caminho do documento com problema.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 14:31

la no banco de dados, ele tá assim: Idéia brilhante, mais daí quando eu resgato e uso na index, ele mostra normal, com acento e tal, mas na hora de usar a função ele buga
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 14:39

Que erro aparece, qual o caminho que a string do BD percorre até ser mostrada na tela?
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 14:45

Idéia brilhante.

Deveria ficar assim: ideia-brilhante

Mais fica assim: idia-brilhante

O caractere que tem o acento some...

eu simplesmente conecto no mysql através das funções mysql_connect e mysql_select_db, e puxo ela por uma string: SELECT * FROM bd WHERE id="id";

É isso.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 14:46

Sim, mais dentro do while, o único filtro na string buscada é a função que passei aqui?
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 14:47

sim...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 14:50

Complicado, porque praticamente o que passei aqui foi um teste simulado, no BD tem as letras com acênto, ai dentro do while printo a variável passada dentro da função.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 17:27

Então, rodei aqui o seu script, ele deveria ficar Ideia Brilhante, pois removeu o acento do é, mais ficou IdAeia Brilhante.

Removeu o acento mais adicionou uma nova letra na frente, e lá no banco de dados ele tá assim:

Idéia brilhante.

Pode me ajudar?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 17:37

Eu tenho uma tabela aqui e coloquei o seguinte em um dos campos: Idéia brilhante.

Ai, no script fora do while joguei a função que indiquei em um dos posts mais acima, chamada: tirando()

Dentro do while para exibir a palavra já formatada usei o seguinte:

echo tirando(utf8_decode("..."));

Onde está os 3 pontos entra sua string do BD

Ai se der erro ao colocar a string, tira as aspas duplas.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 17:46

Fiz o que você falou, joguei a função fora do While, e dentro do while, transformei a palavra, primeiramente com o utf8_decode, mais daí a letra que tinha acento se transformou em uma interrogação "?".

E depois tirei o utf8_decode daí ele tirou o acento da palavra é, mais colocou uma letra A na frente, ficando assim: IdAeia Brilhante.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 284
Sexo: Masculino
Localização: Bahia
Contato:

Problema com acentuação

02-11-2008 18:45

Então, consegui resolver aqui, o problema é que os registros vindos do banco de dados, não estavam convertendo com eregi_replace e ereg_replace, daí tive que sair trabalhando mais um pouco pra deixar tudo legal com o str_replace. Está aí a função pra quem quiser:

function convertUrl($palavra) { $separador = "-"; $palavra = trim($palavra);  $palavra = strtolower($palavra); $palavra = strip_tags($palavra); $palavra = strtolower($palavra); // Letra a $palavra = str_replace("á", "a", $palavra); $palavra = str_replace("à", "a", $palavra); $palavra = str_replace("ã", "a", $palavra); $palavra = str_replace("ä", "a", $palavra); $palavra = str_replace("â", "a", $palavra); // Letra e $palavra = str_replace("é", "e", $palavra); $palavra = str_replace("è", "e", $palavra); $palavra = str_replace("ê", "e", $palavra); $palavra = str_replace("ë", "e", $palavra); // Letra i $palavra = str_replace("í", "i", $palavra); $palavra = str_replace("ì", "i", $palavra); $palavra = str_replace("î", "i", $palavra); $palavra = str_replace("ï", "i", $palavra); // Letra o $palavra = str_replace("ó", "o", $palavra); $palavra = str_replace("ò", "o", $palavra); $palavra = str_replace("ô", "o", $palavra); $palavra = str_replace("õ", "o", $palavra); $palavra = str_replace("ö", "o", $palavra); // Letra u $palavra = str_replace("ú", "u", $palavra); $palavra = str_replace("ù", "u", $palavra); $palavra = str_replace("û", "u", $palavra); $palavra = str_replace("ü", "u", $palavra); // ç $palavra = str_replace("ç", "c", $palavra); $palavra = eregi_replace("(\()|(\))", "", $palavra);  $palavra = eregi_replace("(\/)|(\\\)", "", $palavra); $palavra = eregi_replace("(\[)|(\])", "", $palavra); $palavra = eregi_replace("[@#\$%&\*\+=\|º]", "", $palavra); $palavra = eregi_replace("[;:'\"<>,\.?!_-]", "", $palavra); $palavra = eregi_replace("[“”]", "", $palavra); $palavra = eregi_replace("(ª)+", "", $palavra); $palavra = eregi_replace("[`´~^°]", "", $palavra); $palavra = eregi_replace("[[:space:]]", $separador, $palavra); $palavra = eregi_replace("($separador)+", $separador, $palavra); $palavra = eregi_replace("(^($separador)+)|(($separador)+$)", "", $palavra); $palavra = substr($palavra, 0, 100); return $palavra; } 

Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17416
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Problema com acentuação

02-11-2008 18:53

Um pouco longa, mais boa alternativa também.
0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado