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 :

Supprimer plusieurs <br> [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Supprimer plusieurs <br>
    Bonjour à tous,

    J'ai un formulaire d'ajout de commentaire.
    J'aimerais qu'il soit impossible de rajouter plusieurs <br> à la suite pour ne pas avoir de commentaires du genre

    "Salut







    Comment ça va ?





    Ca te fais chier que je mettes pleins de saut de ligne ?*







    Tampis pour toi !!!"

    Mais je souhaiterais garder la possibilité d'en garder 1 genre comme ça :

    "Salut
    Comment ça va ?
    Ca te fais chier que je mettes pleins de saut de ligne ?*
    Tampis pour toi !!!"

    J'aimerais trouver l'expression régulière qui me permet de la faire

    Merci d'avance !

  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,

    Pas le temps de tester, mais un truc dans ce genre me semble convenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reg = '#<br/?>(?:<br/?>)+#';
    preg_replace ($reg, '<br/>', $str);

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci mais après test => marche pas

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Il suffit de comprendre ce que fait nl2br, le \n est toujours conservé.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = preg_replace('#(<br(:? /)?>\n)\1+#', '$1', $texte);

  5. #5
    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
    Citation Envoyé par mibolan Voir le message
    merci mais après test => marche pas
    ben si...
    Je te prend par la main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $str = '2 sauts<br><br>1 saut<br>3 sauts<br><br><br>pas de saut';
    $reg = '#<br/?>(?:<br/?>)+#';
    $str = preg_replace ($reg, '<br/>', $str);
    print_r($str);

  6. #6
    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
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $str = '2 sauts<br>
    <br>1 saut<br>
    3 sauts<br><br><br>pas de saut';
    $reg = '#<br/?>(?:\\s*<br/?>)+#s';
    $str = preg_replace ($reg, '<br/>', $str);
    print_r($str);

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Enorme merci à vous !

    Avec ce que j'avais déjà chez moi de mon côté j'ai fait ça grace à vous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $commentaire = nl2br($commentaire);
    $commentaire = str_replace('<br />','<br>',$commentaire);
    $commentaire = preg_replace('#(<br>\r\n)\1+#', '$1', $commentaire);

  8. #8
    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
    Si ça marche, c'est cool

    Cependant, au niveau performances, il est inutile d'utiliser des captures et des références arrières sur un motif simple et fixe.

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

Discussions similaires

  1. [MySQL] supprimer plusieurs tuples à partir d'un tableau
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/08/2006, 12h14
  2. VBA supprimer plusieur ligne excel
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/06/2006, 20h56
  3. [querydataset] supprimer plusieurs lignes
    Par doudine dans le forum JBuilder
    Réponses: 5
    Dernier message: 21/10/2005, 13h21
  4. Supprimer plusieurs fichiers...
    Par Thierry8 dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2005, 11h43
  5. Supprimer plusieurs lignes d'un DBGrid via Popupmenu?
    Par BVK dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2004, 11h27

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