.prop1 {
background: orange;
}
<body style="background-color: gray;">
<?php
$keywords = preg_match_all("@(?:.|\n)+?\.|(?:.|\n)+?$@"
, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent varius pharetra nunc, ac dictum eros pellentesque eu. Morbi lobortis lectus leo. Aliquam sit amet luctus nunc. Nullam molestie ante sed dui aliquam imperdiet. Proin pellentesque ac orci ac ultricies. Etiam elementum ultrices erat, a placerat enim sodales at. Nulla suscipit eros a arcu euismod facilisis. Praesent sollicitudin odio et lobortis sodales. Aenean vulputate arcu eget ante aliquam, sed rhoncus lorem tempus. Nulla massa eros, cursus et ligula quis, scelerisque interdum tortor. Morbi efficitur orci porta, suscipit urna ac, euismod quam. Sed suscipit sem a mi feugiat, vel molestie lacus efficitur.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed at tortor tempus, finibus augue ornare, vehicula nisi. Praesent finibus nunc lorem, ac vestibulum nibh aliquet ut. Cras placerat efficitur magna ac cursus. Sed iaculis eros a finibus consequat. Quisque nunc tellus, aliquam vel mauris non, sodales ultrices nunc. Sed vel fringilla tellus.", $matches);
$len = 0;
$line_to_display = 0;
define('length_of_txt', 65);
for($i=0;$i<count($matches[0]);$i++) {
if($len >= length_of_txt) {
$line_to_display = $i;
break;
} else {
$len += strlen($matches[0][$i]);
}
}
if($_GET['expand'] == 'true') {
echo "<div class='prop1'>";
for($i=0;$i<$line_to_display;$i++) {
echo $matches[0][$i];
}
echo "(...)";
echo "</div>";
echo "<form method='get' action=''>";
echo "<input type='submit' value='expand' name='expand'/>";
echo "<input type='hidden' value='false' name='expand'/>";
echo "</form>";
} else {
echo "<div class='prop1'>";
for($i=0;$i<count($matches[0]);$i++) {
echo $matches[0][$i];
}
echo "</div>";
echo "<form method='get' action=''>";
echo "<input type='submit' value='fold' name='expand'/>";
echo "<input type='hidden' value='true' name='expand'/>";
echo "</form>";
}
?>
</body>
(?!\.)(?:.|\n)+?(?=\.)|(?!\.)(?:.|\n)+?$
wikipedia.org - szukanie końca zdania
Jeśli chcesz, żeby było po zdaniach, to można by napisać na końcu każdego zdania non-printable znak, który później służyłby do określenia, w której części tekstu jest zdanie i na tej podstawie przełamywałoby/wyciągałoby się zdania w bardzo prosty sposób chociażby instrukcją split.