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 :

enlever balise <br/> seul mais garder 2 <br/> consécutifs [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut enlever balise <br/> seul mais garder 2 <br/> consécutifs
    Bonjour

    dans un formulaire je récupère un texte copier collé de pages web , que j'insere dans un textarea ça marche bien , il m'affiche bien les textes insérés dans la table.

    Mais ensuite à l'affichage apres un select , pour certains textes j'ai besoin de supprimer les retour à la ligne MAIS de garder les sauts de lignes.

    j'essaye une solution qui est de virer les balises <br \> quant elle sont seule mais de conserver celles qui se suivent

    j'aimerais savoir quel est la syntaxe d'un preg_match pour supprimer tous les <br \> qui ne sont pas suivie d'un autre <br \> mais garder les <br \> qui se suivent.

    exemple j'ai ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Toto mange un cake<br />
    au citron et boie du <br />
    chocolat<br />
    <br />Il est  gourmand !
    je voudrais obtenir ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Toto mange un cake
    au citron et boie du 
    chocolat<br />
    <br />
    Il est  gourmand !
    je suis sur ce genre de piste mais je rame et ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chain=preg_replace('`(<br\*/>){2,}`','<br/><br/> ',$chain);
    L'autre solution si par les balises ça marchent pas serait qu'à chaque fois qu'il y'a plus d'un certains nombre d'espaces vides (mettons 2 ) le preg_match puisse supprimer ces espaces , mais quant il y'en a par exemple plus de 3 il ajoute un <br \>



    merci pour votre aide

  2. #2
    Membre habitué Avatar de daniel61
    Inscrit en
    Décembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 139
    Points : 169
    Points
    169
    Par défaut
    bonsoir

    si la version php ne date pas de l'âge de pierre, alors il y a le reset de pattern avec \K qui peut annuler le remplacement tout en conservant le pointeur après le second <br />

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $data = <<<data
    Toto mange un cake<br />
    au citron et boie du <br />
    chocolat<br />
    <br />Il est  gourmand ! 
    data;
     
    header('Content-type: text/plain');
     
    echo preg_replace('`(<br\s*/>\s*){2,}\K|<br\s*/>`s', '', $data);
     
    ?>
    et en alternative | il y a le remplacement désiré.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Points : 145
    Points
    145
    Par défaut
    Merci Daniel
    tu m'a bien aidé , j'ai finalement fait ça après mon echo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('`(<br\s*/>\s*){2,}\K|<br\s*/>`s', '', nl2br($enregistrement->message_text))
    en effet j'ai du ajouter la fonction "nl2br" pour avoir le retour à la ligne adéquat

    encore merci

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

Discussions similaires

  1. balises non interprétées sous IE mais bien sous FF
    Par trotters213 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/04/2006, 14h31
  2. Arreter compte Exchange server mais garder organisation
    Par pinocchio dans le forum Exchange Server
    Réponses: 1
    Dernier message: 02/02/2006, 09h02
  3. Un edit control en lecture seule mais pas avec un fond gris?
    Par Magus (Dave) dans le forum Windows
    Réponses: 2
    Dernier message: 04/12/2005, 21h58
  4. masquer un champs mais garder les evenements ?
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 12h33
  5. [HTML] Plusieurs balises <html> dans une seule page???
    Par v4np13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/07/2005, 17h37

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