- preg_match: documentation ( source)
<?php
$sentence = "One two three. Four five six. Seven eight nine. Ten eleven twelve. Thirteen fourteen fifteen.";
for ($i = 1; $i <= 15; $i++) {
if (preg_match('/^((\s*\S+){' . $i . '}(\s*\S+)*?(?<=\.))(?=(\s*\S+).*?(?<=\.)\s*\S+)/', $sentence, $match)) {
echo "Summary {$i}: {$match[1]}\n";
} else {
echo "Full text {$i}: {$sentence}\n";
}
}