[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