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

Langage PHP Discussion :

Appliquer un remplacement sauf à l'interieur d'un lien


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Par défaut Appliquer un remplacement sauf à l'interieur d'un lien
    Bonjour,
    je viens à votre secours car je bloque sur une Regex assez particulière.

    En gros, j'ai une table avec des relations "expression" => "lien". En gros, dans cette table, j'ai des valeurs du style "tortue" => "/fiche/animal.php", "lapin bleu" => "/fiche/animal.php".... (je prends des exemples hein...)

    Ce que je veux, c'est ça :
    Dans un texte de mon site, je veux pouvoir, quand une des expressions de la table est présente dans le texte, créer un lien automatique (vers le lien dans la relation, forcément).
    Mais, comme il y a toujours un mais, le lien automatique ne doit pas se faire si l'expression est déjà présente dans un lien (logique), et si l'expression est présente dans une balise image (si y'a le mot tortue dans le lien d'une image présente dans le texte, forcément il ne faut pas toucher).

    Voilà donc mon problème, je me casse la tête dessus depuis ce matin, mais je ne vois pas comment faire.

    Quelqu'un a un début de piste à me proposer ? Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par défaut
    je suppose que tu as déjà essayé de traiter la chaîne directement à la sortie du tableau ?
    si non, tu pourrais essayer quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#^(.*)$#', '<a href="$1">$1</a>', $tb['lien']);
    ce qui, une fois remplacé te donnerait (en admettant que $tb['lien'] soit "/fiche/animal.php") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/fiche/animal.php">/fiche/animal.php</a>

Discussions similaires

  1. remplacer espace par un tiret dans liens hypertexte
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2010, 12h09
  2. appliquer le code sauf premier feuille
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/10/2009, 15h55
  3. [RegEx] Remplacer toutes les ocurrences dans les liens
    Par pop_up dans le forum Langage
    Réponses: 1
    Dernier message: 13/05/2009, 16h28
  4. sed: tout remplacer sauf
    Par lili2704 dans le forum Linux
    Réponses: 4
    Dernier message: 22/07/2008, 16h32
  5. [RegEx] tout remplacer sauf ...
    Par prgasp77 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2006, 15h26

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