Erste 200 Buchstaben

D

Dkl764

Hallo Community,
habe vor ein Newssystem in meine Homepage reinzubauen.

Alles ist schon fertig, nur ist ab und zu (nicht immer!) die Nachricht zu groß und ich würde gerne ab z.b. 200 Buchstaben abbrechen und einen Link "mehr ..:" einfügen.

Aber wie kann ich aus einer variable nur die ersten 200 Buchstaben auslesen?
 
Finde das nicht so schön, so werden auch einzelne Wörter abgeschnitten.
Hier im Forum gab es mal vor einiger Zeit eine schöne Funktioen für sowas.
 
PHP:
<?php
$string = "Text, der nach soundsovielen zeichen abgekürzt werden soll.";

if(strlen($string)>200) { // wenn $string länger als 200 zeichen ist
$string=substr($string, 0, 200);  // dann nach 200 zeichen abbrechen
$string.="..."; // und ... anhängen
}
?>
 
auf die schnelle um keine wörter "durchgeschnitten" zu haben:

PHP:
$teil_text = substr($text, 0, 199);
$teil_text = substr($teil_text, strrpos($teil_text, " "));

Auf die schnelle fällt mir nichts anderes ein. Gibt bestimmt ne Funktion dafür.

EDIT: Optional auch nochmal um ganze Sätze zu haben:

PHP:
$teil_text = substr($text, 0, 199);
if (strpos($teil_text, ".") !== false) $teil_text = substr($teil_text, strrpos($teil_text, "."));  // satzende finden
else $teil_text = substr($teil_text, strrpos($teil_text, " ")); // wenn satz unvollständig, nur zum wort

Problem: Bei Abk. denkt der Algorithmus es wär das Ende.

Siehe auch str_replace() und strrchr().
 
Zuletzt bearbeitet:
Hi!

Schlagt mich nicht, wenn es Blödsinn ist, aber vielleicht ist folgendes eine (kurze) Alternative:
PHP:
$text = "langer Text...";
$anz = 200;
preg_match("/.{0,$anz}.+?\W/s", $text, $kurz);
echo $kurz[0];
...?

Liebe Grüße,
Mark.
 
Zurück