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);
}
}
?>
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 ...
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 was eine PHP Function 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.