Originariamente inviato da Stefax
$messaggio = preg_replace('/\\[([a-zA-Z]){1}\\]([^\\[]*)\\[\/\\1]/i', '<\\1>\\2</\\1>', $messaggio);
Ciao!
bello .. [f]dici che il tag <f> e' una dritta per l'output[/f] ?
a sto punto sarebbe meglio cosi' :
$messaggio = &preg_replace('/(?i)\\[(b|u|i){1}\\]([^\\[]*)\\[\/\\1]/i', '<\\1>\\2</\\1>', $messaggio);
o no ?
P.S. poi il tutto tranne \[ non ha senso, se volessi boldare [questo] come si comporterebbe ???
poi inutile parsare [a][/a] senza alcun carattere in mezzo ...
codice:
$messaggio = &preg_replace( "/(?i)\[(b|u|i)\]([^\a]+?)\[\/\\1]/i", "<\\1>\\2</\\1>", $messaggio );
[ questo senza considerare che in html il tag <u> non esiste, andrebbe sostituito con style="text-decoration: underline" ]