Page 1 sur 1

supprimer les br en fin de chaine

Posté : 13 sept. 2012, 22:58
par leozoe
Bonjour,

je souhaiterais supprimer tous les br qui se trouvent a la fin d'une chaine.

j'ai testé
while(true)
{
$br = substr(trim($chaine),-6); // recupere 6 derniers caracteres qui correspondent au <br />
if($br == "<br />")
{
$resultat = str_replace("<br />","",$chaine);
}
else
{
break;
}
}
mais ça ne fonctionne pas
merci de vos conseils

Re: supprimer les br en fin de chaine

Posté : 14 sept. 2012, 07:22
par schim59
Bonjour
$position = strrpos($chaine, 'htmlspecialchars(<br />)');
echo $position;
Te retourne quoi ?

As tu essayez strip_tags() ?

Re: supprimer les br en fin de chaine

Posté : 14 sept. 2012, 08:27
par Mazarini
while(true)
{
$chaine = trim($chaine);                             // pour être tranquille une bonne fois pour toute
$br = substr($chaine,-6);                            // récupere 6 derniers caracteres qui correspondent au <br />
echo '$br ="',$br,'"<br>';                             // pour voir ce que tu récupères 
if($br == "<br />")
{
$resultat = substr(trim($chaine),0,length($chaine)-6);     // pour enlever le dernier et uniquement le dernier , pas tous les br
}
else
{
break;
}
}
Autrement, "ca marche pas", c'est un peu léger comme diagnostique... Tu ne changes pas le br, tu changes tous les br.
Il faudra quand même vérifier mes calculs de longueur et de position.

Re: supprimer les br en fin de chaine

Posté : 14 sept. 2012, 11:37
par sirakawa
while(true)
{
$chaine = trim($chaine);                             // pour être tranquille une bonne fois pour toute
$br = substr($chaine,-6);                            // récupere 6 derniers caracteres qui correspondent au <br />
echo '$br ="',$br,'"<br>';                             // pour voir ce que tu récupères 
if($br == "<br />")
{
$resultat = substr(trim($chaine),0,length($chaine)-6);     // pour enlever le dernier et uniquement le dernier , pas tous les br
}
else
{
break;
}
}
Autrement, "ca marche pas", c'est un peu léger comme diagnostique... Tu ne changes pas le br, tu changes tous les br.
Il faudra quand même vérifier mes calculs de longueur et de position.
et tester à tout hasard "<br>" et "<br/>" (une faute de frappe est si vite arrivée).

Re: supprimer les br en fin de chaine

Posté : 14 sept. 2012, 19:01
par leozoe
Bonjour,

merci a tous pour vos réponses ;)
le code final donne ça
$a=0;
while($a<5)
{
$lenght = strlen($chaine);
$chaine = trim($chaine);                             // pour être tranquille une bonne fois pour toute
$br = substr($chaine,-6);                            // récupere 6 derniers caracteres qui correspondent au <br />
 
if($br == "<br />")
{
$chaine = substr(trim($chaine),0,$lenght-6);     // pour enlever le dernier et uniquement le dernier , pas tous les br
}
$a++;
}
il me reste a trouver la solution pour compter le nombre de br a la fin de ma chaine pour remplacer le 5 dans la boucle
br est inséré automatiquement dans mon textarea par ckeditor, pas besoin donc de vérifier

encore merci et bon we

Re: supprimer les br en fin de chaine

Posté : 14 sept. 2012, 19:40
par schim59
Bonjour,

(...)
pour enlever le dernier et uniquement le dernier , pas tous les br
(...)
Je l'avais pas vu ^^