Jump to content


Photo

Casar Primeira Maiúscula Ou Não


  • Faça o login para participar
6 replies to this topic

#1 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 02/05/2008, 16:03

Tô com uma dúvida simples, só preciso de um remember porque nessas últimas semanas não mexi muito com php e pesquisando não soube achar uma palavra-chave pra tanto.

Fiz um busca com LIKE %$palavra% e para ser mais fácil a captura de resultados, passei pra lowercase tanto a tabela do mySQL quanto a palavra digitada na hora da busca.

Ou seja, ele faz a busca com tudo em lowercase, mas o meu retorno (impressão) do resultado vem com as letras conforme estão cadastradas...

Exemplo:

Digitei "Carro" na busca. Ele busca por "carro", passa pra lower a tabela no momento da busca e na hora de imprimir o resultado na tela me mostra conforme está cadastrado no database, "Carro".

Com isso, ao tentar destacar no texto a palavra procurada, não estou conseguindo. Pois ao tentar usar str_replace, ele vai procurar ou pela palavra com tudo em lowercase ou com tudo maiúsculo ou com.... enfim, são inúmeras possibilidades, e com str_replace não seria viável.

Pergunta: Pensei em usar ereg_replace, mas como que defino na ER para que a primeira letra possa ser maiúscula OU minúscula, e ambos os casos case?

Acho que não tem necessidade de fazer a mesma verificação para todas as letras da consulta do cabra (iria exigir muito do processamento e sem necessidade), mas se alguém puder me explicar como fazer com todas as letras, seria bem interessante também!

É isso :unsure:

(y)
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 02/05/2008, 16:08

str_ireplace()
É igual à outra, mas não é case-sensitive.

#3 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 02/05/2008, 16:45

Valeu a ajuda!

Já melhorou, já consigo marcar as palavras buscadas :) (y)

Mas vou insistir no método do ereg_replace ainda, porque com str_ireplace ele vai substituir para o case do momento em que eu digitei a busca.

Por exemplo: Se eu procurei por "joão" e no BD existe "João", ele não vai imprimir "João", mas sim "joão" (visto que digitei com lowercase a palavra).

Preciso que ele mantenha a formatação que está no banco de dados. O que quero é apenas adicionar um <span> na palavra, por isso que não posso usar str_ireplace, pois sendo assim ele vai mudar a formatação que está no DB de tempos em tempos.

Continua a dúvida inicial :(

Edição feita por: Firehalk, 02/05/2008, 16:45.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 03/05/2008, 01:52

Mas vou insistir no método do ereg_replace ainda, porque com str_ireplace ele vai substituir para o case do momento em que eu digitei a busca.

Usa eregi_replace(). É só pegar, com um retrovisor, o que casar e adicionar a tag.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#5 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 03/05/2008, 02:01

Tenho um problema parecido.... De buscar palavras com acentos ¬¬ huauhauhauhahuauhauha. =)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#6 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 05/05/2008, 08:37

Alex, é bem isso a função que procurava, valeu :)

Eu tô fazendo alguma burrada, mas faz um tempinho que não mexo e mesmo nesse básico do básico não tô achando o erro...

Tentei assim:

$teste = "Estou fazendo um teste";
echo eregi_replace('/(\bteste\b)/','<span>\1</span>',$teste);

Não era pra ter funcionado? Tentei o retrovisor com duas barras (\\) e nada também.

Edit: Ahhhhhhhhh vou pirar aqui. Com preg_replace funciona, usando exatamente a mesma ER <_<

Mas com preg_replace é case sensitive, e até onde sei não tem função pra case insensitive.

Vejam:

//Teste com eregi_replace

$var = "Estou fazendo um teste simples e não funciona *****!!";
$var = eregi_replace('/(\bsimples\b)/','<span>\\1</span>',$var);
echo $var;

echo "<br/><br/>-------------<br/><br/>";

//Teste com preg_replace

$var = "Estou fazendo um teste simples e não funciona *****!!";
$var = preg_replace('/(\bsimples\b)/','<span>\\1</span>',$var);
echo $var;

Alguma luz? Eu tô sem idéias :(

PHP versão 5.2.5

Edit2 (resolvido): Tinha me esquecido do /i (case insensitive).

O jeito foi usar o preg_replace mesmo, com o /i.

preg_replace('/(\b$palavra\b)/i','<span>\\1</span>',$var);

(y)

Edição feita por: Firehalk, 05/05/2008, 14:38.

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#7 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 29/10/2017, 09:26

Viagra Confezioni Levaquin Scrotum Female Sample Tadalis Sx Soft levitra a precios baratos Fluoxetine Medicine Citotec Comprar
Levitra Preise Schweiz Wholesale Viagra 100mg Cialis Depression cost of levitra 20mg Levitra Sample Online Pharmacy Tarif Du Levitra En Baisse Cielas
Viagra Pfizer Bewertung Clomid Prescription Overnight Pharmacocinetique De La Ciprofloxacine cialis Kamagra Vente




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq