[Cascavel-pm] Criar links em um texto
fernandolouis em terra.com.br
fernandolouis em terra.com.br
Segunda Julho 2 06:45:47 PDT 2007
Fiz um exemplo alternativo ao meu problema real, mas acho que não foi mais
útil para compreensão de todos
Deixa eu botar meu problema real para vocês compreenderem:
Recebo do banco de dados um texto (sobre matérias de jornais e revistas),
que é armazenado na string $texto.
Esse texto pode vir escrito de várias maneiras diferentes, e antes de
mostrá-lo na tela, devo botar os respectivos links de cada jornal e revista
que aparecer.
por exemplo:
$texto = "O Jornal nº 121/2006 apresenta bla bla bla bla bla, diferente da
revista nº 54 de maio/2000 que bla bla bla bla".
deve ficar:
$texto = "O <a href="leitura.pl?tipo=jornal&numero=121&ano=2006">Jornal nº
121/2006</a> apresenta bla bla bla bla bla, diferente da <a
href="leitura.pl?tipo=revista&numero=54&ano=2000">revista nº 54 de
maio/2000</a> que bla bla bla bla".
O problema é que o "Jornal nº 121/2006" e "revista nº 54 de maio/2000" podem
vir escrito de outras formas como:
"revista 54/2000"
"revista nº 54/2000"
"revista n 54 de 2000"
"jornal número 121"
"jornal nº 121 de 2006"
"jornal 121/2006"
Sempre vou ter os tipos "revista" e "jornal" com seus respectivos números e
ano.
O que vocês acham de eu fazer o link mais ou menos assim...
$texto =~ s/Jornal nº 121/2006/<a
href="leitura.pl&tipo=jornal&numero=121&ano=2006">$&<\/a>/g;
O primeiro padrão de reconhecimento do "s///" deveria ser, por exemplo,
$tipo e $numero e $ano que eu peguei do $texto, para então jogar isso na tag
A ao padrão de substituição de "s///";
Só que não to conseguindo entrar na string $texto e então pegar exatamente
o: "Jornal nº 121/2006" e "revista nº 54 de maio/2000", primeiro pq eles
podem vir a ser escrito de várias maneiras, mas até aí beleza, é só prever
todos os casos no padrão de reconhecimento.
Como entrar no $texto e fazer todas as sbustituições para colocar os links
nele?
[]s,
Fernando
-----------------------------
> Fernando,
>
> Para procurar os padrões, eu utilizaria regex, agora, pra armazenar o
> referido padrão com o link que deve ser inserido, utilizaria um hash,
> o qual você poderia (se for o caso) guardar em um arquivo separado, ou
> ainda algo do tipo YAML ou XML ... se for pouco conteúdo, e não tiver
> muita pretensão de crescimento, utilizaria um conf padrão mesmo, tipo:
> "<variavel>=<valor>" ...
>
> um abraço,
Mais detalhes sobre a lista de discussão Cascavel-pm