[size=12] affiché correctement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [size=12] affiché correctement

par thehawk » 16 juil. 2007, 12:49

Merci Ryle pour la precision

par Ryle » 16 juil. 2007, 12:41

C'est probablement parce que le pattern que tu utilises ne correspond pas à la chaine saisie dans ta base : [size=xxx] est différent de ["size=xxx"]. C'est donc normal qu'il ne le retrouve pas la chaine et ne puisse pas faire la transformation :)

Regarde également du côté de l'option "U" pour éviter le côté "gourmand" des expressions régulières : si tu as plusieurs balises size, par défaut il ne prendra en compte que la première ouvrante et la dernière fermante. Avec l'option "U" il considerera bien chaque paire trouvée.

@thehawk : les deux syntaxes peuvent être utilisées : \1 ou $1 contiennent toutes deux le premier élément capturé par les parenthèses :)

par thehawk » 16 juil. 2007, 11:22

tient j'ai toujours penser qu'il falait faire :
preg_replace('`\[size=(.*?)\](.*?)\[\/size\]`i', '<font size=\"'.$1.'\">'.$2.'</font>', $text);
je me trompe ?

par @rthur » 15 juil. 2007, 17:14

Bonjour,

Regarde ke code HTML généré, ça te donnera sûrement des pistes pour débuguer...

par Dom! » 15 juil. 2007, 16:07

Merci pour la réponse !

J'ai écrit ca :
$text = preg_replace("/\[color=(.*?)\](.*?)\[\/color\]/i", "<font color=\"\\1\">\\2</font>", $text);
            $text = preg_replace("/\[size=(.*?)\](.*?)\[\/size\]/i", "<font size=\"\\1\">\\2</font>", $text);
            $text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/i", "<font face=\"\\1\">\\2</font>", $text);
            $text = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/i", "<p align=\"\\1\">\\2</p>", $text);
et n'y la couleur n'y la taille ne changent...

Ensuite j'ai modifié et voici ce que j'ai écrit :
 $text = preg_replace('`\[size=(.*?)\](.*?)\[\/size\]`i', '<font size=\"\\1\">\\2</font>', $text);
		 $text = preg_replace('/\[color=(.*?)\](.*?)\[\/color\]/i', '<font color=\"\\1\">\\2</font>', $text);
		// $text = preg_replace('`\[color=(.*?)\](.*?)\[\/color\]`i', '<font color=\"\\1\">\\2</font>', $text);
		 $text = preg_replace('/\[font=(.*?)\](.*?)\[\/font\]/i', '<font face=\"\\1\">\\2</font>', $text);
et la !! la taille change mais la couleur ne correspond pas au code couleur.

exemple : color=#8B0000 cette couleur est bordeau mais avec mon code c'est vert.

Savez vous pourquoi ?
Merci

par Truc » 14 juil. 2007, 22:18

par Dom! » 14 juil. 2007, 20:09

Oui mais comment le faire dans ma page... ?

Merci

par Hubert Roksor » 14 juil. 2007, 20:07

Pour le forum c'est facile, c'est phpBB qui le fait.

[size=12] affiché correctement

par Dom! » 14 juil. 2007, 19:36

Bonjour à tous !

Dans ma base de donnée il est inscrit ["size=12"] Bonjour à tous["/size"] comme sur ce forum. Comment lors de l'affichage du message mettre le texte en taille 12 et effacer [size] ??

Merci pour votre aide.