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]
"
);
?>
|