La funzione per il BBcode che presentiamo in questo articolo è molto più evoluta di quella a cui abbiamo fatto riferimento qualche tempo fà. In questa sono previste nuove funzionalità: gestione dell'accapo, supporto dei più difffusi tag HTML , gestione degli smiles, ceazione di link ad immagini, sostituzione di URL con link e collegamento automatico degli indirizzi di posta elettronica al client predefinito.
Alla fine vengono anche proposti alcuni esempi di utilizzo con i quali il lettore potrà testare l'efficacia della funzione.
<?php function bb($stringa) { $stringa = @nl2br($stringa); $stringa = @str_replace("[b]", "<b>", $stringa); $stringa = @str_replace("[/b]", "</b>", $stringa); $stringa = @str_replace("[u]", "<u>", $stringa); $stringa = @str_replace("[/u]", "</u>", $stringa); $stringa = @str_replace("[i]", "<i>", $stringa); $stringa = @str_replace("[/i]", "</i>", $stringa); $stringa = @str_replace("[center]", "<center>", $stringa); $stringa = @str_replace("[/center]", "</center>", $stringa); $stringa = @str_replace("[left]", "<left>", $stringa); $stringa = @str_replace("[/left]", "</left>", $stringa); $stringa = @str_replace("[right]", "<right>", $stringa); $stringa = @str_replace("[/right]", "</right>", $stringa); $stringa = @str_replace(" ", " ", $stringa); $stringa = @str_replace(':)','<img src="http://www.sito.it/img/sr.gif""/>',$stringa); $stringa = @str_replace(';)','<img src="http://www.sito.it/img/oc.gif""/>',$stringa); $stringa = @str_replace(':P','<img src="http://www.sito.it/img/lg.gif""/>',$stringa); $stringa = @str_replace(':D','<img src="http://www.sito.it/img/rs.gif""/>',$stringa); //$stringa = @str_replace( //'...','<img src="http://www.sito.it/img/....gif""/>',$stringa); $pt = array(); $sob = array(); $pt[] = "#\[img\](.*?)\[/img\]#si"; $sob[] = "<img src=\"\\1\" border=\"0\" />"; $pt[] = "#\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]#si"; $sob[] = "<a href=\"http://\\1\">\\1</a>"; $pt[] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si"; $sob[] = "<a href=\"mailto:\\1\">\\1</A>"; return @preg_replace($pt, $sob, $stringa); } echo bb( "[i]ciao[/i] <br> [email]mail@sito.it[/email] <br> [url]www.sito.it[/url] " ); ?>