Aide Expression Régulière.

Résolu/Fermé
bl00p's Messages postés 118 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 23 novembre 2012 - Modifié par bl00p's le 21/11/2012 à 19:51
bl00p's Messages postés 118 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 23 novembre 2012 - 23 nov. 2012 à 20:29
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

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
22 nov. 2012 à 14:42
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
bl00p's Messages postés 118 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 23 novembre 2012 11
23 nov. 2012 à 20:29
Bonsoir ça marche nickel ! Merci bien.
0