Mit PHP auf ganze Worte oder ganze Sätze kürzen

Erstellt: 05.07.2011 10:59

Es kann mal sein, dass man den Anfang eines Textes braucht. In diesem Fall leistet "substr()" alleine zwar grundsätzlich den Dienst, dass es den String kürzt, jedoch meistens unschön zwischen Wörtern oder Sätzen.

Das einfachste ist es, mit "substr()" ein wenig mehr Zeichen dazu zu geben und danach mit "preg_replace()" den Rest abzuschneiden bis zum Wortende oder Satzende.

Hierzu zwei Beispiele:

200 Zeichen vom String nehmen und bis zum nächsten Wortende abschneiden. (Annahme: Jedes Wort wird getrennt von einem Leerzeichen.)

$string = preg_replace("/[^ ]*$/", '', substr($string, 0, 200));

400 Zeichen vom String nehmen und bis zum nächsten Satz abschneiden. (Annahme: Jeder Punkt trennt einen Satz.)

$string = preg_replace("/[^.]*$/", '', substr($string, 0, 400));

Diese Lösung ist hat einen kleinen Haken, ist ein Wort oder Satz länger als die Stringlänge bekommt man einen leeren String zurück.
In den meisten Fällen, sollte es jedoch seinen Dienst tun.

Tagged: HTML/CSS PHP Regex


Ähnliche Artikel:
In Bash einen String aus HTML/XML-Tags extrahieren
Wie ich den RSS-Feed erstelle
Gelöschte oder veränderte Dateien oder Bibliotheken in Gebrauch finden
Umlaute ersetzen in Perl
Markdown-Files unter Linux im Terminal darstellen

« Vorheriger Eintrag

Nächster Eintrag »

Kommentare

mirabilos:

29.11.2011 14:23

Den umgekehrten Schrägstrich aus den eckigen Klammern bitte entfernen, das ist eine character class, siehe: https://www.mirbsd.org/man7/re_format

So wie es da im Moment steht kann es auch bei einem \ trennen.

Kommentar verfassen