Bonjour,

Je développe actuellement un module perl qui remplace des mots automatiquement dans le texte d'une page web par des liens.

Les mots à remplacer sont stockés dans un fichier texte avec le lien, la cible d'ouverture (_self ou _blank) et la description correspondante.

Mon problème vient de la fonction chargée de ramplacer les mots (plus précisément de l'expression régulière d'après moi...).

Voici la fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
sub autoLinks{
  # fonction remplacant les mots contenus dans $text pour lesquels des liens automatiques sont prévus
 
  # on récupère les paramètres  
  my ($text,$id) = @_;	 
 
  # on récupère le fichier
  my ($strLinks) = &importerFichier('./autoLink07/data/'.$id.'.autolink.dat');
  my (@links) = split(/<<>>/, $strLinks);  
 
  # on le parcours et on compare chaque info à celle passée en paramètre  
  my ($strLink) = '';		
  foreach $strLink (@links){	
    my (@autoLink) = split(/<>/, $strLink); 
	# pour chaque mot à remplacer, on le remplacer dans le fichier	
 
	#<span>'.$autoLink[2].'</span>
 
	$url = '<a class="autolink" href="http://'.$autoLink[1].'" target="'.$autoLink[3].'">'.$autoLink[0].'</a>';
	$mot = $autoLink[0];
 
	#$mot = quotemeta($mot);
	#$url = quotemeta($url);
 
	$text =~ s/$mot/$url/gei ;
  }	  
  # on envoi le résultat 
  return $text;
}
Aucun remplacement n'est affectué (les mots sont bien chargés et on rentre bien dans la boucle foreach).

Merci de votra aide ...