🇩🇪 Deutsch

15 Mar 2026

Truncate text reasonable in PHP

Um automatisch einen Teaser zu generieren, braucht man eine schlaue Funktion, die Wörter nicht zerhackt. :-)

  • Quelle: Drupal Project
<?php
function _truncate($string, $len, $wordsafe = FALSE, $dots = FALSE) 
{
        if (strlen($string) <= $len) {
                return $string;
        }

        if ($dots) {
                $len -= 4;
        }

        if ($wordsafe) {
                $string = substr($string, 0, $len + 1); // leave one more character
                if ($last_space = strrpos($string, ' ')) { // space exists AND is not on position 0
                        $string = substr($string, 0, $last_space);
                } else {
                        $string = substr($string, 0, $len);
                }
        } else {
                $string = substr($string, 0, $len);
        }

        if ($dots) {
                $string .= ' ...';
        }

        return $string;
}
?>
  • Beispielverwendung:
    $t = _truncate($t, 150, true, true);