Problemet är att avgöra vad som är en mening. Du skulle t.ex kunna säga att att punkt delar mening:
$meningar = explode(".", $text);
if (sizeof($meningar) > 1) {
unset($meningar[sizeof($meningar)-1]);
}
Nu har du varje mening i ett array-element och kan skriva ut de 10 första.
Problemet är att du kan använda punkt till annat. Förkortningar, kommatecken eller liknande.
Då skulle du t.ex kunna bestämma att en mening bryts med punkt, sedan något skiljetecken typ mellanslag, för att följas av stor bokstav:
$meningar = preg_split("/\\.\\s+(?=[A-ZÅÄÖ]|$)/s", $text.' ', -1, PREG_SPLIT_NO_EMPTY);
Här får du ta en fundering om en mening kan börja på något annat än stor bokstav, och om det kan göra det, kan också då denna kombination uppstå inne i en mening.
Sedan när du skriver ut:
$max = 10;
if ($max > sizeof($meningar)) {
$max = sizeof($meningar);
}
for ($i=0; $i<$max; $i++) {
echo trim($meningar[$i]).'. ';
}
[EDIT]
Glömde tydligen bort förra gången att webforum stjäl backslash i regexpar :)
Har ändra nu
