ecrit avant la regexcomme ça les espace seront echappés.Code:$mot = quotemeta($mot);
sinon je ne vois pas le soucis
Version imprimable
ecrit avant la regexcomme ça les espace seront echappés.Code:$mot = quotemeta($mot);
sinon je ne vois pas le soucis
Ouf merci!
Voila sa marche enfin !
Voici la source de ma fonction :
Code:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 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); my ($strLink) = ''; foreach $strLink (@links){ my (@autoLink) = split(/<>/, $strLink); # pour chaque mot à remplacer, on le remplacer dans le fichier if ($autoLink[0] eq ''){ next; } $url = '<a class="autolink" href="http://'.$autoLink[1].'" target="'.$autoLink[3].'">'.$autoLink[0].'</a>'; $mot = $autoLink[0]; $mot = quotemeta($mot); $text =~ s{\s$mot\s}{ $url }mgsxi; $text =~ s{\s$mot}{ $url}mgsxi; $text =~ s{$mot\s}{$url }mgsxi; } foreach $strLink (@links){ my (@autoLink) = split(/<>/, $strLink); #pour chaque mot à remplacer, on le remplacer dans le fichier if ($autoLink[0] eq ''){ next; } $span = '>'.$autoLink[0].'<span>'.$autoLink[2].'</span><'; $mot = '>'.$autoLink[0].'<'; $mot = quotemeta($mot); $text =~ s{$mot}{$span}mgsxi; } # on envoi le résultat return $text; }
ok, tant mieux.
oublie pas le tag résolu.