Ir para conteúdo
Fórum Script Brasil
  • 0

Interpretar ISO-8859-1 como UTF-8 e vice-versa


GuuH.zin

Pergunta

Andei procurando aqui no fórum por um sistema de busca interna no servidor e achei este código php:

http://scriptbrasil.com.br/forum/index.php?showtopic=91199

O código atende quase perfeitamente à minha necessidade, só tem uma coisa: na hora de buscar um termo ("enviar" o formulário), eu quero que ele interprete á como a, ou vice-versa, tipo como o Google faz, porque na hora de buscar, o script interpreta pagina (digamos que este seja o termo pesquisado) diferente de página (digamos que este seja o termo que ele deveria achar) e acaba não mostrando todos os resultados possíveis, eu preciso disso porque não é todo mundo que escreve com acento na internet.

Reumindo:

Se possível, eu quero que na hora de mostrar os resultados, eu quero que ele interprete

á, ã, â, ä como a e vice-versa;

é, è, ë como e e vice-versa;

ç como c e vice-versa e assim por diante.

Não querendo pedir muito, mas já pedindo, por favor me expliquem ao máximo porque eu sou novato em PHP.

Obrigado

Editado por GuuH.zin
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

você pode usar esta função para converter o texto da string

1: <?php

2:

3: // Função para tirar os acentos de uma string! pode ser adaptadas para outras coisas

4:

5: function RemoveAcentos($Msg)

6: {

7: $a = array(

8: ''/[ÂÀÁÄÃ]/''=>''A'',

9: ''/[âãàáä]/''=>''a'',

10: ''/[ÊÈÉË]/''=>''E'',

11: ''/[êèéë]/''=>''e'',

12: ''/[ÎÍÌÏ]/''=>''I'',

13: ''/[îíìï]/''=>''i'',

14: ''/[ÔÕÒÓÖ]/''=>''O'',

15: ''/[ôõòóö]/''=>''o'',

16: ''/[ÛÙÚÜ]/''=>''U'',

17: ''/[ûúùü]/''=>''u'',

18: ''/ç/''=>''c'',

19: ''/Ç/''=> ''C'');

20: // Tira o acento pela chave do array

21: return preg_replace(array_keys($a), array_values($a), $Msg);

22: }

23:

24: // como usar

25: echo RemoveAcentos("Amanhã não irei caçar")

26: ?>

ou esta

strtr($string, "ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ", "SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy");
ou esta
function tiracento($texto){

$trocarIsso = array('à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','não','ò','ó','ô','õ','ö','ù','ü','ú','ÿ','À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','não','Ò','Ó','Ô','Õ','Ö','O','Ù','Ü','Ú','Ÿ',);

$porIsso = array('a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','0','U','U','U','Y',);

$titletext = str_replace($trocarIsso, $porIsso, $texto);

return $titletext;

}

ou pode ir no site do php e ver esta função

http://br.php.net/manual/pt_BR/function.strtr.php

espero ter ajudado

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa pela demora na resposta... Eu vou testar o código, mas pelo o pouco que eu entendo, essa função substitui á por a, certo?

Se eu estiver errado, me corrijam.

Se eu estiver certo, não é bem isso o que eu quero, porque, se na hora da busca a pessoa digitar página e na hora de enviar a busca trocar por pagina, e só houver resultados para página, a busca não irá retornar resultados.

Tipo, eu quero que se a pessoa digitar pagina, retorne resultados para página e pagina, por exemplo, não importando se ela digitou com acento ou não.

isso se for possível, claro.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...