Rajout d'une balise après du texte

Petit nouveau ! | 7 Messages

26 juin 2006, 17:47

Bonjour,
J'ai encore un petit problème de mise en forme de text.
J'ai mis en place ceci:

Code : Tout sélectionner

str_replace("<P style=\"MARGIN: 0cm 0cm 0pt\" align=justify>", "<div style=\"text-align: justify;\">", $src);
Qui me remplace une mauvaise mise en forme de IE
Mais voila mon probleme est qu'il faudrait qu'il place a la fin du text (tatata) un </DIV>.
Y-a-t-il un fonction qui permet de dire:

Code : Tout sélectionner

remplacament de (<P style=\"MARGIN: 0cm 0cm 0pt\" align=justify>tatata<BR>") en ("<div style=\"text-align: justify;\>tatata</DIV><BR>")?
Une fonction preg_replace() peut elle fonctionner?
Merci.

Mammouth du PHP | 1353 Messages

27 juin 2006, 10:51

Si tu veux a chaque fois rajouter un </div> à la fin de ta chaîne, pourquoi ne pas utiliser une concaténation "classique":
$str=str_replace("<P style=\"MARGIN: 0cm 0cm 0pt\" align=justify>", "<div style=\"text-align: justify;\">", $src);
$str = $str."</div>";
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 413 Messages

27 juin 2006, 10:52

salut,

exemple avec preg_replace (mais je n'ai pas testé) :
$pattern = '/<P style="MARGIN: 0cm 0cm 0pt" align=justify>(.*?)<BR>/i';
$replacement = '<div style="text-align: justify;">$1</DIV><BR>';
echo preg_replace($pattern, $replacement, $string);
le .* signifie n'importe quel texte, et le ? après le * signifie que s'il y a plusieurs possibilités, on veut prendre la longueur le plus petite.
Exemple simple pour comprendre le ? :
<p>ttaat<br>tatata<br>

là le .* pourrait correspondre à 2 trucs :
ttaat<br>tatata
ttaat

le ? après le * dit qu'il faut prendre le plus court des 2.
--
Goeb

Petit nouveau ! | 7 Messages

27 juin 2006, 15:25

merci goeb ta fonction marche au poile. Je te remerci aussi guilt92.