Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

phew

Pesquisa utilizando acentos

Recommended Posts

Preciso fazer uma busca utilizando acentos (õó)

Tentei com

<?/******************************************************************************* Exemplo do artigo "PESQUISA COM ACENTOS DENTRO DO MYSQL" - drSolutions - Tecnologia e Informática - Diego M. Rodrigues diego@drsolutions.com.br ------------------------------------------------------------------------------- Função que Montas as REGEXP *******************************************************************************/ function stringParaBusca($str) {	//Transformando tudo em minúsculas	$str = trim(strtolower($str));	//Tirando espaços extras da string... "tarcila  almeida" ou "tarcila   almeida" viram "tarcila almeida"	while ( strpos($str,"  ") )		$str = str_replace("  "," ",$str);		//Agora, vamos trocar os caracteres perigosos "ã,á..." por coisas limpas "a"	$caracteresPerigosos = array("ã","á","à","ä","â","é","è","ë","ê","í","ì","ï","î","õ","ó","ò","ö","ô","ú","ù","ü","û","ç");	$caracteresLimpos = array("a","a","a","a","a","e","e","e","e","i","i","i","i","o","o","o","o","o","o","o","o","o","c");	$str = str_replace($caracteresPerigosos,$caracteresLimpos,$str);		//Agora que não temos mais nenhum acento em nossa string, e estamos com ela toda em "lower",	//vamos montar a expressão regular para o MySQL	$caractresSimples = array("a","e","i","o","u","c");	$caracteresParaRegExp = array(		"(a|ã|á|à|ä|â|ã|á|à|ä|â|Ã|Á|À|Ä|Â|Ã|Á|À|Ä|Â)",		"(e|é|è|ë|ê|é|è|ë|ê|É|È|Ë|Ê|É|È|Ë|Ê)",		"(i|í|ì|ï|î|í|ì|ï|î|Í|Ì|Ï|Î|Í|Ì|Ï|Î)",		"(o|õ|ó|ò|ö|ô|õ|ó|ò|ö|ô|Õ|Ó|Ò|Ö|Ô|Õ|Ó|Ò|Ö|Ô)",		"(u|ú|ù|ü|û|ú|ù|ü|û|Ú|Ù|Ü|Û|Ú|Ù|Ü|Û)",		"(c|ç|Ç|ç|Ç)" );	$str = str_replace($caractresSimples,$caracteresParaRegExp,$str);		//Trocando espaços por .*	$str = str_replace(" ",".*",$str);		//Retornando a String finalizada!	return $str;}?>

Porem retorna (u|ú|ù|ü|û|Ú|Ù|Ü|Û|c|ç|Ç|)

Alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

brother, tem um erro em uma parte do código:

 

$caracteresPerigosos = array("ã","á","à","ä","â","é","è","ë","ê","í","ì","ï","î","õ","ó","ò","ö","ô","ú","ù","ü","û","ç");

$caracteresLimpos = array("a","a","a","a","a","e","e","e","e","i","i","i","i","o","o","o","o","o","o","o","o","o","c");

veja que você está colocando o quando deveria colocar u...

 

até mais! B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.