bonaprogram, ciao di nuovo,
sto tentando di riportare alcune modifiche al tuo codice, senza successo pero'..
Praticamente ho visto che non faceva explode per i chars insensitive, quindi ho trovato questa funzione in internet explodei:
Codice PHP:
function explodei($separator, $string, $limit = false )
{
$len = strlen($separator);
for ( $i = 0; ; $i++ )
{
if ( ($pos = stripos( $string, $separator )) === false || ($limit !== false && $i > $limit - 2 ) )
{
$result[$i] = $string;
break;
}
$result[$i] = substr( $string, 0, $pos );
$string = substr( $string, $pos + $len );
}
return $result;
}
che funziona benino (per php < 5.0 bisognerebbe anche aggiungere la funzione stripos:
Codice PHP:
if (!function_exists("stripos")) {
function stripos($str,$needle,$offset=0)
{
return strpos(strtolower($str),strtolower($needle),$offset);
}
}
Ora la ricerca della $keyword è indipendente dal tipo di caratteri (maiuscolo/minuscolo) ma ho riscontrato un'inconveniente (se ho $keyword = "quattro"; mi mette in output una cosa del genere: Uno, Due, Tre, quattro, Cinque etc.. cioè non rispetta il tipo della parola da ricercare (in questo caso non la lascia con la Q maiuscola ma inserisce il valore della $keyword.
E' possibile che non cambi la parola originale (quella evidenziata con $keyword) ?
Poi sono curioso se fosse possibile determinare se la parte di sinistra o destra necessitano di "..." Ad esempio se la $keyword si trova all'inizio della stringa (cioè non viene tagliata nessuna parte allora sarebbe logico non mostrare "..." all'inizio.. la stessa cosa per la fine della stringa..
Si potrebbe creare due snippet contemporanamente? Ho provato con $keyword = array("key1", "key2"); ma ovviamente explode() non ha sopportato.. 
Ovviamente non sei obbligato a risolvere tutti questi punti per me, ti chiedo solo se mi confermi che ci sia possibilità di una risoluzione - così continuero a rompermi la testa 
Grazie di nuovo per il tuo aiuto!