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 :

Remplacer toutes les ocurrences dans les liens [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut Remplacer toutes les ocurrences dans les liens
    Bonjour,

    Je cherche à remplacer tous les saut de ligne qui se trouvent entre les balises <a> et </a> sachant qu'il peut aussi y avoir d'autre balises à l'intérieur de celles-ci (du style <u></u> <em></em> ...)

    Pour l'instant, je sais remplacer un saut de ligne juste aprés la balise <a> tout en conservant ces attributs en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_replace('/<a (.*?)>\r\n/', '<a $1>', "<a href=\"lien\" title=\"titre info\">\r\ntexte <u>du</u> lien\r\n</a>\r\n texte");
    Comment faire pour dire de remplacer les \r\n entre les balises <a> ?

    Merci pour votre aide

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Je ne sais pas si une regex "oneline" pourrait le faire, mais c'est faisable en deux étapes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $myString = "<a href=\"lien\" title=\"titre info\">\r\ntexte <u>du</u> lien\r\n</a>\r\n texte";
    if ( preg_match('#(<a[^>]*>)(.+)(</a>)#s', $myString, $firstMatch) ) {
        $firstMatch[2] = preg_replace('/\r\n/', '', $firstMatch[2]); // remplacement des sauts de ligne entre les balises
        array_shift($firstMatch); // j'enlève l'élément 0 qui ne nous intéresse pas
        $myString = implode( '', $firstMatch );
        echo $myString;
    }
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

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

Discussions similaires

  1. enlever les slashes devant les apostrophes dans les mails
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 18h57
  2. Réponses: 3
    Dernier message: 06/08/2009, 17h09
  3. les classes et les templates dans les plugins
    Par asoka13 dans le forum C++
    Réponses: 22
    Dernier message: 24/01/2008, 17h11
  4. Réponses: 4
    Dernier message: 11/09/2006, 16h55
  5. Les polices dans les tables et les requêts
    Par zooffy dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 11h06

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