8792 sujets

Développement web côté serveur, CMS

Salut,
J'ai un petit souci de traitement d'un texte saisi à l'aide d'un formulaire!

Un fois que le formulaire est traité, je lance une fonction (voici juste les lignes qui peuvent être intéressantes),

function tagtohtml ($texte) {
  $texte=strip_tags($texte);
  $texte=nl2br($texte);
  $texte=preg_replace('/\<font color="(.*?)"\>(.*?)\<\/font\>/','[color=$1]$2[/color]',$texte);
  return $texte;
}


Donc jusque là pas de problème. Si la phrase est sur une seule ligne ca marche, mais si le texte est sur plusieurs lignes ca ne marche plus, je me doute que c'est à cause du (.*?) mais je ne vois pas comment faire pour que les <br /> soient analysés.
J'ai aussi pensé à mettre cette ligne :
$texte=preg_replace('/\<font color="(.*?)"\>(.*?)\<\/font\>/','[color=$1]$2[/color]',$texte);
, avant le nl2br, pour mettre (.*?\r\n) mais c'est toujours pareil!

Voila, merci d'avance Smiley smile
Bonjour,
Cette question est hors sujet par rapport à ce qui est demandé dans ce salon.

Cela dit, il faut que tu ajoutes l'option s à ton expression régulière.