ti daro' una mia soluzione, a dir la verità non ottimale. quella ottimale la realizzi con le espressioni regolari, che io non sono all'altezza di usare.
dunque, immaginiamo tu abbia il testo in $stringa. ecco la funzione che ti serve:
----------------------------------------------------------------------------
function _firstchar( $stringa, $n=200, $bbcode=array() )
{
foreach( $bbcode as $item ) $stringa = str_replace( "[$item]", '', $stringa );
return substr( $stringa, 0, $n )." ...";
}
----------------------------------------------------------------------------
ma devi anche creare un array dove inserire i bbcode che andranno estirpati dalla tua stringa (eh lo so, questo e' il punto debole della mia soluzione, speriamo qualcunaltro giunga in aiuto):
----------------------------------------------------------------------------
$bbcode = array( 'b', 'i', ..., ..., ..., ...);
----------------------------------------------------------------------------
PS: la mia funzione restituisce la stringa senza piu' i bbcode. immagino ti serva per una preview del contenuto vero e proprio