Angellis 0 Denunciar post Postado Fevereiro 21, 2006 Saudações,Anteriormente eu estive tento problemas para fazar a busca no meu sistema. Agora está tudo ok, (Valeu Adailton!).Agora para melhorar (e complicar) eu pensei em colocar o um highlight na string que foi procurada. Só que não tenho a mínima noção de como fazer.Eu faço uma comparação usando LIKE nos campos que desejo e tenho os ids dos registros.Depois monto uma página com todas as ocorrências com hyperlink para a página que fará a busca apenas daquele registro e ai sim montar o cadastro.O highlight apareceria apenas nessa última página.Não sei se seria Javascript ou php para fazer isso.Alguém pode me recomendar algo?Grato, Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 21, 2006 é php mesmo, exemplo: $string = str_replace("$string", "$string", $texto); Compartilhar este post Link para o post Compartilhar em outros sites
Angellis 0 Denunciar post Postado Fevereiro 21, 2006 Fabyo,Tipo, o problema é que não tenho uma string apenas. Imagine que eu tenho uma tabela com os campos id, nome, endereço, telefone, e-mail, cargo, etc.A página que eu desejo aplicar o Highlight recebe o ID e faz a busca retornando os campos.Então eu imprimo isso nos lugares certos da página, de acordo com uma formatação que eu preciso manter.Se eu aplicar isso antes de cada echo não vai ficar meio tosco? Compartilhar este post Link para o post Compartilhar em outros sites
Angellis 0 Denunciar post Postado Fevereiro 21, 2006 Problema resolvido :) Só fica a dúvida com relação a estar usando essa solução para cada vez que for imprimir algo. Outra coisa, não consegui entender bem o funcionamento: $str = "Vou me embora para Passargada";$str = str_replace("Passargada", "<span style='color:red'>$str</span>", $str);echo $str;Eu tenho a seguinte saída: Vou me embora para Vou me embora para Passargada Como contorno isso? Compartilhar este post Link para o post Compartilhar em outros sites
UselessThoughts 0 Denunciar post Postado Fevereiro 22, 2006 cara a variavel $str é a q provavelmente vai vir do formulario de busca. não sei se você reparou mas você ta mandando substituir "Passagarda" por "Vou me embora para Passargada" $str = str_replace("Passargada", "<span style='color:red'>$str</span>", $str); o script ta achando Passagarda dentro da string $str e substituindo esse trecho pela variavel $str com a formatação nova q é a mudança de cor. como o a variavel $str provavelmente vai vir de um formulario um jeito correto seria esse $str = "Vou me embora para Passargada";$str = str_replace($str, "<span style='color:red'>$str</span>", $str);echo $str; aonde ele procuraria a string digitada no formulario e formataria ela. espero ter ajudado []s! Compartilhar este post Link para o post Compartilhar em outros sites
Angellis 0 Denunciar post Postado Fevereiro 22, 2006 Valeu Useless, eu já tinha achado o problema.O caso agora é que está funcionando como case sensitive. Como modifico isso? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 22, 2006 use expressoes regulares Compartilhar este post Link para o post Compartilhar em outros sites
Eragon 0 Denunciar post Postado Fevereiro 22, 2006 Bom, espero que ajude, fiz uma pequena função.<?function highlight($palavras,$texto){ for ($i=0; $i<count($palavras); $i++){ $texto = str_replace($palavras[$i],'<span style="background: #CCCCCC;">' . $palavras[$i] . '</span>', $texto); } return $texto; }$texto = 'Isso é um teste do high'; $palavras = array ('um','high'); echo highlight($palavras,$texto);?>Se tiver dúvidas poste aí. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 22, 2006 mas como ele falou no case-sensitive , precisa usar expressoes regulares para nao ter problema de procurar palavras maiusculas ou minusculas Compartilhar este post Link para o post Compartilhar em outros sites
Angellis 0 Denunciar post Postado Fevereiro 22, 2006 Utitilzo a função ereg_replace()? Ou seria outra? De qualquer forma, tentei usando essa função e não tive sucesso. Continua trabalhando com case sensitive. Quando uso a função eregi() tudo certo, mas se tento usar do mesmo geito para a ereg_replace() não tenho tanta sorte $string = "Vou me embora para Passargada"; echo eregi ("passar", $string);echo ereg_replace("passar", "<strong>Passargada</strong>", $string); Onde estou a errar? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 22, 2006 use preg_x em vez de ereg, os preg sao muito mais rapidos e para ignorar maiusculas ou minusculas use o modificador i Compartilhar este post Link para o post Compartilhar em outros sites
Angellis 0 Denunciar post Postado Fevereiro 23, 2006 Fabyo deixe eu abusar da sua boa vontade.Procure pela função preg_x e não achei nada. Além disso, não entendi o que você quer dizer com o modificador i.Nunca usei expressões regulares então estou mais perdido que cego em tiroteio.Grato, Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 23, 2006 entao quando falei sobre as funções preg_x eram essas: preg_grep preg_match_all preg_match preg_quote preg_replace_callback preg_replace preg_split no seu caso você vai usar a preg_replace() e sobre modificadores http://br.php.net/manual/pt_BR/reference.p...n.modifiers.php exemplo $frase = preg_replace("#$palavra#i", "<span style='color:red;'>\\0</span>", $frase); Compartilhar este post Link para o post Compartilhar em outros sites
Eragon 0 Denunciar post Postado Fevereiro 24, 2006 Se a sua tabela for MyISAM nem precisa tratar maiuscula e minuscula. Compartilhar este post Link para o post Compartilhar em outros sites