Aide Expression Régulière.

Résolu
bl00p's Messages postés 140 Statut Membre -  
bl00p's Messages postés 140 Statut Membre -
Bonjour,

Je souhaiterais créer une RegEx qui me supprime tous les sauts de lignes <br/> ou <br /> seulement dans les tableaux <table></table>.
Je ne sais pas comment indiquer à la fonction de remplacer ces sauts de lignes simplement à l'intérieur des tableau et non pas dans tous le texte.

Ducoup j'ai commencé comme ça :

#<br\s?/>#


Auriez vous une idée ? Merci d'avance !

EDIT : J'ai un peu avancé :
#<table>(.+)<br\s?/>(.+)<\/table>#isU

Le problème maintenant c'est que seul le premier saut de ligne est supprimé. Les autres reste.



"Le meilleur moyen de prendre un train à l'heure, c'est de s'arranger pour rater le précédent."

2 réponses

  1. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Salut,

    Une autre solution éventuellement :
    $variable = '<table>
      <tbody>
        <tr>
          <td>a<br>
    b</td>
          <td>c<br/></td>
          <td>d</td>
        </tr>
        <tr>
          <td>e<br /></td>
          <td>f</td>
          <td>g<br>
    h</td>
        </tr>
      </tbody>
    </table>
    <p>ceci est un texte <br/>avec retour à la ligne.</p>';
    echo $variable.'<br/>';
    
    function supprime_br($texte)
    {
    	$motif = $texte[0];
    	$motif = str_replace("<br>", "", $motif);
    	$motif = str_replace("<br/>", "", $motif);	
    	$motif = str_replace("<br />", "", $motif);	
    	return $motif;
    }
    
    $texte = preg_replace_callback('#<table>(.+)</table>#isU', 'supprime_br', $variable);
    
    echo $texte;
    1
  2. bl00p's Messages postés 140 Statut Membre 11
     
    Bonsoir ça marche nickel ! Merci bien.
    0