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!