String nach Wortende trennen
Sicher hatten schonmal einige das Problem wenn man mit substr(); arbeitet, dass dann Wörter mittendrin zerschnitten werden. Für die die gerne am Ende des Strings auch ein ganzes Wort stehen haben wollen gibt es eine einfache Lösung.
Und zwar schreibt man sich einfach selber eine kleine Funktion die dies implementiert.
- <?php
- function kurzer_text($string,$laenge){
- $origin=strlen($string);
- $stri_arr=explode(" ",$string);
- $anzzahl=count($stri_arr);
- $gekuerzt=0;
- $string="";
- while($gekuerzt<$anzzahl){
- $string_alt=$string;
- $string=$string." ".$stri_arr[$gekuerzt];
- $gekuerzt++;
- if(strlen($string)>$laenge){
- $gekuerzt=$anzzahl;
- $string=$string_alt;
- }
- }
- if($laenge<$origin){
- $string=$string."...";
- }
- return $string;
- }
- ?>
Der Code ist mehr oder weniger selbsterklärend.
Erst wird die Länge des original Textes ermittelt, dann der String an den Leerzeichen getrennt und die Anzahl der Wörter gezählt.
Dann wird in einer while() Schleife die Länge des String überprüft und je nach Länge wird das Wort angehängt oder nicht.
Am Ende wird der fertig gekürzte String zurückgegeben.
Tipp:
PHP Tutorials