phew 0 Denunciar post Postado Abril 16, 2007 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
jeronymo 0 Denunciar post Postado Abril 16, 2007 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