Mit substr(); kann man ja Texte auf x Zeichen kürzen. Diese Funktion lässt aber zum Beispiel bei Vorschautexten von Newssystemen etc. ziemlich unschöne Effekte auftreten, sodass zum Beispiel ein Text inmitten eines Wortes abgehackt wird ("Er ging um die Ec..."). Abhilfe dafür schafft dieses Script.
<?php
/*
@param text, string
@param zeichen, integer, Stringlength
@param kolanz, integer, optional, Kolanzwert für Länge
@param punkte, integer, optional, Anzahl angehangener Punkte
*/
function word_substr($text, $zeichen, $kolanz=3, $punkte=0) {
if(strlen($text) < $zeichen+$kolanz)
return $text;
$wort = explode(" ",$text);
$newstr = "";
$i = 0;
while(strlen($newstr)<=$zeichen &&
strlen($newstr.$wort[$i])<=($zeichen+$kolanz)) {
$newstr .= $wort[$i]." ";
$i++;
}
$newstr .= str_repeat(".",$punkte);
return $newstr;
}
$text = "Wer ander'n eine Bratwurst brät, hat ein Bratwurstbratgerät.";
// voller Text
echo $text."<br/>";
// Text mit 18 Zeichen Länge, Kolanz gleich 20
echo word_substr($text, 18, 20)."
";
// Text mit 18 Zeichen Länge, Kolanz gleich 5
echo word_substr($text, 18, 5)."
";
// Text mit 100 Zeichen Länge, Kolanz gleich 5
echo word_substr($text, 100, 5)."
";
?>
Quelle: php4u.net