Ich bin auf der Suche nach einer Möglichkeit, einen Text-String nach einer bestimmten Anzahl an Worten zu kürzen. Es gibt zwar in PHP einen Befehl, mit dem man einen String auf X Zeichen kürzen kann, aber das ist meistens mitten im Wort und das gefällt mir nicht. Wie kann man das mit einer Anzahl an Worten lösen?
Antwort: Um das zu realisieren muss man eine eigene Funktion bauen. PHP selbst verfügt nicht über eine Funktion, die so ein wortbasiertes Kürzen erlaubt. Im Grunde zerschneidet man den Text mit explode und nimmt das Leerzeichen als Trenner. Dann hat meinen ein Array, das die einzelnen Worte enthält. Um den String dann auf 25 Worte zu begrenzen, baut man den Text nach und nach mit einer Schleife zusammen und läßt diese einfach nur 25 mal laufen. Das fertige PHP Skript sieht dann so aus:
$meintext = "Das ist mein toller Text, den ich kürzen möchte. Aktuell ist er noch relativ lang und enthält viele Worte. Aber nachdem das PHP-Skript mit ihm fertig ist, wird er schon recht kurz sein. Ungefähr genauso lang, wie man möchte. Probiere es einfach mal aus!"; $kurzertext = ''; $anzahlworte = 25; $schnippsel = explode(' ', $meintext); for ($x = 0; $x < $anzahlworte; $x++) { $kurzertext .= "{$schnippsel[$x]} "; } $kurzertext .= "..."; // Noch Pünktchen anhängen echo $kurzertext; // Fertig...
Kapitel in diesem Beitrag:
Warum Worte und keine Zeichen?
Das Trennen eines Textes nach einer bestimmten Anzahl von Worten ist deutlich eleganter als das Kürzen nach einer beliebigen Anzahl von Zeichen. Das macht das Ende des Auszugs deutlich lesbarer und sieht dazu besser aus. In der Mitte abgeschnittene Worte wirken immer wie Fehler im Text, finde ich.
PHP-Beispiel: Kürzen des Strings nach X Zeichen
Möchte man jedoch aus irgendwelchen Gründen nach einer bestimmten Anzahl von Zeichen statt Worten kürzen, ist dies deutlich leichter als das oben aufgeführte Beispiel. Hier benötigt man nur drei Zeilen Code:
$meintext = "Das ist mein toller Text, den ich kürzen möchte. Aktuell ist er noch relativ lang und enthält viele Worte. Aber nachdem das PHP-Skript mit ihm fertig ist, wird er schon recht kurz sein. Ungefähr genauso lang, wie man möchte. Probiere es einfach mal aus!"; $meintext=strip_tags ($meintext); // erstmal HTML-Tags rausfiltern, die sonst beim kürzen kaputt gehen würden if(strlen($meintext)>100) echo substr($meintext,0,100)."..."; // nach 100 Zeichen wird gekürzt else echo $meintext;
Meine Tipps & Tricks rund um Technik & Apple
Ähnliche Beiträge
Seit 2012 betreibe ich meinen Blog als Sir Apfelot und helfe meinen Lesern bei technischen Problemen. In meiner Freizeit flitze ich auf elektrischen Einrädern, fotografiere mit meinem iPhone, klettere in den hessischen Bergen oder wandere mit meiner Familie. Meine Artikel behandeln Apple-Produkte, Drohnen-News und Lösungen für aktuelle Bugs.
Die Darstellung des Code-Blocks ist etwas eigenwillig und verschwindet auf der rechten Browserseite irgendwo im Nirvana.
Hallo Siegbert! Danke für den Hinweis. Das ist irgendwie im Laufe der Jahre kaputt gegangen, da ich früher ein anderes Plugin zu Darstellung der Codes hatte. Ich habe es jetzt aber korrigiert und hoffe, es ist wieder lesbar!