Page 1 sur 1

Rajout d'une balise après du texte

Posté : 26 juin 2006, 17:47
par jeanmarc
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.

Posté : 27 juin 2006, 10:51
par guilt92
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>";

Posté : 27 juin 2006, 10:52
par goeb
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.

Posté : 27 juin 2006, 15:25
par jeanmarc
merci goeb ta fonction marche au poile. Je te remerci aussi guilt92.