Ho provato con questa funzione da me realizzata
	Codice PHP:
	
function TagliaStringa2($stringa, $parola, $distanza){    
 $posizione_parola = strpos($stringa, $parola);
 $lunghezza_parola = strlen($parola);
 
 if ($posizione_parola > $distanza) {
   $taglio_inizio = $posizione_parola - $distanza;
   $stringa_tagliata_inizio=substr($stringa, $taglio_inizio, $distanza);
   $first_space=strpos($stringa_tagliata_inizio," ");  
   $stringa_inizio=" ... ".substr($stringa_tagliata_inizio, $first_space);    
 } 
 else {$stringa_inizio=substr($stringa, 0, $posizione_parola);
 }
    
 
 $taglio_fine = $posizione_parola + $lunghezza_parola    ;
 $stringa_tagliata_fine=substr($stringa, $taglio_fine, $distanza);    
 
 if (strlen($stringa_tagliata_fine) >= $distanza ) {
         
 $last_space=strrpos($stringa_tagliata_fine," ");  
 $stringa_fine=substr($stringa_tagliata_fine, 0,$last_space)." ... ";     
 }
 else { $stringa_fine=substr($stringa_tagliata_fine, -$posizione_parola);
 }
      
     return $stringa_inizio.$parola.$stringa_fine;    
} 
 
che funziona bene solo nel caso in cui il termine della ricerca sia una sotto-stringa del testo ma entra in crisi quando sono presenti più parole separate!
Non so più come fare!!! Spero in un vostro aiuto grazie!