Wer kennt das nicht, man möchte einen Text bei einer Ausgabe entsprechend für eine Vorschau kürzen. In PHP gibt es dazu die Funktion substr() womit man einen Text kürzen kann. Leider hat man das Problem, dass der Text immer nach der angegebenen Anzahl an Zeichen abgeschnitten wird. Dies möchte man natürlich für den Betrachter schöner gestalten und daher möchte ich euch an dieser Stelle erklären, wie man in Verbindung mit der PHP Funktion substr() und preg_replace() entsprechend einen Text kürzen kann, ohne ein Wort abzutrennen.
In diesen PHP Tutorial verwende ich eine selbstdefinierte PHP Funktion string_kuerzen(), um diese beiden PHP-Funktionen substr() und preg_replace() zu einer PHP Funktion zusammenzufassen. Im ersten Abschnitt gehe ich auf die selbstdefinierte Funktion string_kuerzen() ein, und im zweiten Abschnitt wird erklärt, wie man mit dieser PHP-Funktion einen Text kürzen kann. Also kommen wir zu der Funktion.
Code der PHP-Funktion:
<?php
/*
* Created on 24.01.2010 by Nico Schubert
*/
function string_kuerzen ($string,
$string_max_laenge = 150) {
/**
* Prüfen ob in der Variable $string ein Wert
definiert wurde.
*/
if (empty($string) == true) {
/**
* Funktion abbrechen und eine
Fehlermeldung zurückgeben.
*/
return('Es wurde kein String an die
Function: string_kuerzen() übergeben!');
} else {
/**
* Die Länge des Strings in der Variable
$string mit der PHP Funktion strlen()
ermitteln.
*/
$string_laenge = strlen($string);
/**
* Die gespeicherte Länge in der Variable
$string_laenge mit der maximalen
Länge in Verbindung einer IF
Anweisung prüfen. Wenn die Länge in
der Variable $string_laenge größer
als wie die maximale Länge ist, wird
der String in der Variable $string
nicht berührt und unverändert
zurückgegeben.
*/
if ($string_laenge >= $string_max_laenge) {
/**
* Den Text kürzen in der Variable
$string auf die Länge, in der
Variable $string_max_laenge
steht. Anschließend mit
preg_replace() den gesamten Text
nach den letzten Leerzeichen
entfernen.
*/
$string = preg_replace("/[^ ]*$/", '',
substr($string, 0,
$string_max_laenge));
/**
* Zu guter letzt hängen wir an den
Text in der Variable $string ein
entsprechendes "..." an, damit
der Text kenntlich gemacht wird,
dass dieser gekürzt wurde.
*/
$string .= ' ...';
}
/**
* Rückgabe der Variable $string und
Beendigung der PHP function.
*/
return ($string);
}
}
?>
Erklärung:
In der PHP-Funktion string_kuerzen() wird ein String, der an die Funktion übergeben wird, auf eine bestimmte Länge gekürzt. Zuerst wird überprüft, ob in der Variable $string, die an die Funktion übergeben wurde, ein Wert definiert ist. Hierzu wird die PHP Funktion empty() verwendet. Falls ja, wird über die PHP-Funktion strlen() die Länge des Strings in der Variable $string ermittelt. Anschließend wird über eine IF-Anweisung geprüft, ob die gespeicherte Länge in der Variable $string_laenge größer als die maximale Länge ist, die in der Variable $string_max_laenge definiert ist. Wenn die Länge in der Variable $string_laenge größer ist als die maximale Länge, wird der String in der Variable $string kürzt und mit einem "..." angehängt. Am Ende wird der kürzere String, der in der Variable $string gespeichert ist, als Rückgabe der Funktion zurückgegeben.
Nun haben wir die PHP-Funktion, um diese nun zu verwenden, müssen wir entsprechend der PHP Funktion verschiedenen Variablen übergeben. Hierzu habe ich für euch ein Beispiel erstellt.
Beispiel für die Verwendung der PHP-Funktion:
<?php
/**
* Beispiel für die Verwendung der selbst
definierten PHP function.
*/
/**
* Definieren des Textes in der Variable $text, den
wir kürzen möchten.
*/
$text = 'Das ist ein Demo Text, dieser Text dient
zur Demonstration.';
/**
* Maximale Länge, die der Text haben darf.
*/
$maximale_textlaenge = '50';
/**
* Übergabe der Variablen an die selbst definierten
PHP function.
*/
$rueckgabe = string_kuerzen($text,
$maximale_textlaenge);
/*
* Ausgabe des zurückgegebenen Textes.
*/
echo $rueckgabe;
?>
Die Ausgabe wurde folgendermaßen aussehen:
Das ist ein Demo Text, dieser Text dient zur ...
Erklärung:
Zuerst wird ein Text definiert, der gekürzt werden soll, in der Variablen $text. Anschließend wird die maximale Länge des Textes in der Variablen $maximale_textlaenge definiert. Dann werden die Variablen an die selbst definierte Funktion übergeben und die Rückgabe in der Variablen $rueckgabe gespeichert. Zuletzt wird der zurückgegebene Text ausgegeben.
Diesen selbstdefinierte PHP-Funktion string_kuerzen() unterstützt ausschließlich Text, wenn man vorher den HTML-Code entfernen möchte, empfiehlt es sich die PHP-Funktion strip_tags() zu verwenden.
Weiterführende Erklärungen zu den verwendeten PHP-Funktionen:
echo – Text ausgeben in PHP.
Php Function – Allgemeine Erklärung war eine PHP Funktion ist und wie man diese verwenden kann.
IF Anweisung – Erklärung, der Verwendung einer IF-Anweisung.
substr() – Zeichenkette nach einer bestimmten Länge kürzen.
strlen() – Länge einer Zeichenkette ermitteln.