Una funzione PHP per il BBcode

20/02/2007

BBcode (Bulletin Board Code) è un diffuso sistema per dare la possilibità a coloro che compilano form, scrivono commenti o inseriscono articoli in pagine web di aggiungere tag HTML senza dover agire direttamente sul codice. Gli esempi più classici sono i moduli per gli interventi sui forum di discussione e i pannelli di controllo a disposizione degli utenti che scrivono sui blog.

In questo breve tutorial, vedremo un semplice esempio di funzione utilizzabile per dotare le nostre pagine di BBcode, essa metterà a disposizione degli utenti alcuni semplici codici con i quali indicare all'interno di un testo la presenza di tags per la formattazione.

Ecco di seguito il codice della nostra funzione:

<?
function bBcode($str) {

$bb = @array(
'/\[b\](.*?)\[\/b\]/is', 
'/\[i\](.*?)\[\/i\]/is', 
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);

 $out = @array(
  '<b>$1</b>',
  '<i>$1</i>',
  '<u>$1</u>',
  '<img src="$1" />',
  '<a href="$1">$1</a>',
  '<a href="$1">$l</a>'
  );
 
$str = @preg_replace ($bb, $out, $str);
 return $str;
}
?>
Il listato consta di due array, in uno vi sono i caratteri da sostituire con i tags (ad esempio [i] per <i>, corsivo, o [b] per <b>, grasseto); nell'altro vi sono i tags che sostituiranno i caratteri. Il tutto poggia sulla semplice funzione preg_replace() che esegue la ricerca di una sottostringa in una stringa e la sostituisce con una seconda sottostringa indicata.

Ecco un possibile utilizzo della nostra funzione:
<?
@require 'funzione.php';
$stringa = "[b]string[/b]";
echo @bBcode($stringa);
?>
Da cui avremo in output la parola stringa scritta appunto in grassetto.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home