aspettate, piano.
Io fin ora ho fatto tutti i tag ed ho questo:

Codice PHP:
protected function format_text($text)
    {
        
$search=array('[font=Verdana]''[/font=Verdana]''[font=Trebuchet MS]''[/font=Trebuchet MS]'
                      
'[font=Times New Roman]''[/font=Times New Roman]''[font=Tahoma]''[/font=Tahoma]'
                      
'[font=Stencil]''[/font=Stencil]''[font=Script MT Bold]''[/font=Script MT Bold]'
                      
'[font=Lucida Console]''[/font=Lucida Console]''[font=Impact]''[/font=Impact]'
                      
'[font=Georgia]''[/font=Georgia]''[font=Courier New]''[/font=Courier New]'
                      
'[font=Comic Sans MS]''[/font=Comic Sans MS]''[font=Century Gothic]''[/font=Century Gothic]'
                      
'[font=Book Antiqua]''[/font=Book Antiqua]''[font=Andale Mono]''[/font=Andale Mono]'
                      
'[font=Arial Black]''[/font=Arial Black]''[font=Arial]''[/font=Arial]'
                      
'[size=1]''[/size=1]''[size=2]''[/size=2]'
                      
'[size=3]''[/size=3]''[size=4]''[/size=4]'
                      
'[size=5]''[/size=5]''[size=6]''[/size=6]'
                      
'[limegreen]''[/limegreen]''[maroon]''[/maroon]'
                      
'[navy]''[/navy]''[teal]''[/teal]'
                      
'[brown]''[/brown]''[beige]''[/beige]'
                      
'[blue]''[/blue]''[orange]''[/orange]'
                      
'[purple]''[/purple]''[pink]''[/pink]'
                      
'[green]''[/green]''[black]''[/black]'
                      
'[yellow]''[/yellow]''[red]''[/red]'
                      
'[b]''[/b]''[i]''[/i]''[u]''[/u]''[s]''[/s]'
                      
'[left]''[/left]''[center]''[/center]''[right]''[/right]'
                      
'[hr]''[*]''[/*]''[list]''[/list]'
                      
'[list=A]''[/list=A]''[list=a]''[/list=a]''[list=1]''[/list=1]');
                      
        
$replace=array('<span style="font-family: \'Verdana\';">''</span>''<span style="font-family: \'Trebuchet MS\';">''</span>'
                       
'<span style="font-family: \'Times New Roman\';">''</span>''<span style="font-family: \'Tahoma\';">''</span>'
                       
'<span style="font-family: \'Stencil\';">''</span>''<span style="font-family: \'Script MT Bold\';">''</span>'
                       
'<span style="font-family: \'Lucida Console\';">''</span>''<span style="font-family: \'Impact\';">''</span>'
                       
'<span style="font-family: \'Georgia\';">''</span>''<span style="font-family: \'Courier New\';">''</span>'
                       
'<span style="font-family: \'Comic Sans MS\';">''</span>''<span style="font-family: \'Century Gothic\';">''</span>'
                       
'<span style="font-family: \'Book Antiqua\';">''</span>''<span style="font-family: \'Andale Mono\';">''</span>'
                       
'<span style="font-family: \'Arial Black\';">''</span>''<span style="font-family: \'Arial\';">''</span>'
                       
'<span style="font-size: xx-small;">''</span>''<span style="font-size: small;">''</span>'
                       
'<span style="font-size: medium;">''</span>''<span style="font-size: large;">''</span>'
                       
'<span style="font-size: x-large;">''</span>''<span style="font-size: xx-large;">''</span>'
                       
'<span style="color: lime;">''</span>''<span style="color: maroon;">''</span>'
                       
'<span style="color: navy;">''</span>''<span style="color: teal;">''</span>'
                       
'<span style="color: #A52A2A;">''</span>''<span style="color: #F5F5DC;">''</span>'
                       
'<span style="color: blue;">''</span>''<span style="color: #FFA500;">''</span>'
                       
'<span style="color: purple;">''</span>''<span style="color: #FFC0CB;">''</span>'
                       
'<span style="color: green;">''</span>''<span style="color: black;">''</span>'
                       
'<span style="color: yellow;">''</span>''<span style="color: red;">''</span>'
                       
'[b]''[/b]''[i]''[/i]''<u>''</u>''<strike>''</strike>'
                       
'<p style="text-align: left; margin: 0; padding: 0;">''</p>''<p style="text-align: center; margin: 0; padding: 0;">''</p>''<p style="text-align: right; margin: 0; padding: 0;">''</p>'
                       
'<hr/>''[*]''''<ul>''[/list]'
                       
'[list=1]''[/list]''[list=1]''[/list]''[list=1]''[/list]');
        
        
$text=str_replace($search$replace$text);
        
$text=nl2br($text);
                
        return 
$text;
    } 
Ho pensato anche io alle espressioni regolari, ma la vedo troppo complessa. Puoi spiegarti meglio?