modifier dernière occurence trouvée dans un texte

seg
Invité n'ayant pas de compte PHPfrance

08 janv. 2010, 16:13

Bonjour à tous,

Voici mon problème, j'ai un texte et dans ce texte j'ai des balises <br>. Je souhaiterai supprimer le dernier <br> du texte qui me pose des problèmes.
Le strreplace ne me permet pas de changer la dernière occurence de br trouvée et le strrpos me permet seulement de ressortir la position. Je ne vois pas comment modifier seulement ça dans mon texte en ayant la position.
Quelqu'un a une idée ?

Merci par avance pour vos réponses :D

Eléphant du PHP | 70 Messages

08 janv. 2010, 16:17

Vu que tu connais la position du dernier br, tu peux faire

substr(partie avant le dernier br) + substr(partie après le dernier br)
Damien Vande Kerckhove - Developer PHP & .net
Mon blog

seg
Invité n'ayant pas de compte PHPfrance

08 janv. 2010, 16:48

ah oui très bonne idée, j'y avais pas pensé.
Merci beaucoup

ViPHP
ViPHP | 1996 Messages

08 janv. 2010, 16:53

Hmmm j'ai une idée saugrenue qui me vient...
Si j'ai bien compris ton <br> est à la fin du texte : tu te sers de explode() pour couper ta chaine en tableau et tu enlèves (avec le paramètres -1) la dernière occurence (qui est vide) et tu recréés ton texte sans le denier <br>
<?php
//si <br> à la fin du texte
$tab_texte = explode ("<br>",$texte,-1);
$texte = implode ("<br />",$tab_texte);
?>
Si tu veux le dernier <br> mais s'il n'est pas en fin de texte : tu fais la même manip mais tu rajoutes la dernière occurrence du tableau avec un espace
<?php
//si le dernier <br> mais pas à la fin du texte
$tab_texte_0 = explode ("<br>",$texte);
$tab_texte_1 = explode ("<br>",$texte,-1);
$dernier_occurence = count($tab_texte_1);
$texte = implode ("<br />",$tab_texte_1)." ".$tab_texte_0[$dernier_occurence];
?>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 6 Messages

09 janv. 2010, 14:29

Voici un exemple avec des expressions régulières:

$text = 'Lorem ipsum dolor sit amet, <br>
consectetur adipisicing elit<br>
sed do eiusmod tempor incididunt<br>';
$text = preg_replace('|<br>$|', '', $text);