IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Création de liens automatiques


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut Création de liens automatiques
    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 ...

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    il y a surement un souci avec les // de l'url.
    essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $text =~ s{$mot}{$url}mgsxi;

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut
    J'ai remplacé la ligne avec l'expression régulère que tu ma donné mais rien ne change, aucun mot n'est remplacé

    Il y a un truc bizare :

    Quand je met l'expression régulière $text =~ s/$mot/$url/g , aucun mot n'est remplacé et quand je met cette expression $text =~ s/$mot/$url/ , la première occurence du mot est remplacée correctement...

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    bon avant d'attendre un remplacement, on va faire des tests.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	#$mot = quotemeta($mot);
    	#$url = quotemeta($url);
    	print "mot : $mot\n"; #=====> print $mot
    	print "url : $url\n"; #=====> print $mot
    	$text =~ s/$mot/$url/gei ;
    est ce qu'il y a un mot et une url de printé?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut
    Oui biensur les mots et les url sont bien affichées

    C'est la première chose que j'ai vérifié avant de poster sur le forum... J'évite les sujets inutiles

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par Munkey74
    Oui biensur les mots et les url sont bien affichées

    C'est la première chose que j'ai vérifié avant de poster sur le forum... J'évite les sujets inutiles
    c'est bien .
    peux tu donner 2 exemples (2 mots et 2 url) pour que je puisse faire des tests de mon coté

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de lien automatique
    Par Daniboom dans le forum Langage
    Réponses: 14
    Dernier message: 07/04/2014, 21h36
  2. Réponses: 0
    Dernier message: 04/03/2014, 14h44
  3. création des liens automatiques macro
    Par victoires dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/03/2012, 10h38
  4. 4D création de lien automatique en sql
    Par saturne27 dans le forum 4D
    Réponses: 1
    Dernier message: 26/02/2008, 10h57
  5. [Tableaux] Création de lien automatique
    Par GarGamel55 dans le forum Langage
    Réponses: 3
    Dernier message: 17/09/2005, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo