Mailinglisten-Archive |
Hallo Namensvetter,
ich steuere hiermit auch noch eine Loesung bei:
function is_word_end ($c)
/*
Ueberprueft, ob der Buchstabe das Ende eines Wortes ist.
Rueckgabewert:
0, wenn es sich um einen normalen Buchstaben handelt
1, wenn es das Ende eines Wortes ist (Leerzeichen oder , . ? ! ;)
-1, wenn kein einzelner Buchstabe uebergeben wurde
*/
{
// Ist der Parameter wirklich ein Buchstabe?
if (!is_string ($c))
return -1;
if (strlen ($c) != 1)
return -1;
// Diese Zeichen Werden als Wortende akzeptiert
$signs = array (',',
'.',
'?',
'!',
';',
' ');
// Ueberpruefen der einzelnen Zeichen
for ($i = 0; $i < count($signs); ++$i)
if ($c == $signs[$i])
return 1;
return 0;
}
function StrShorten ($str, $num_chars)
/*
Kuerzt $str auf $num_chars und nimmt ggf. noch Zeichen mit,
damit ein Wort nicht in der Mitte abgeschnitten wird.
Rueckgabewert:
$str mit einer Laenge von $num_chars + (maximal 20) zusaetzlichen
Zeichen
*/
{
// Wurden die richtigen Parameter uebergeben?
if (!is_string ($str))
return;
if (!is_int ($num_chars))
return;
// Es muessen mehr als 0 Buchstaben abgeschnitten werden
if ($num_chars < 1)
return;
// Abschneiden der ersten &num_char Woerter
$ret = substr ($str, 0, $num_chars);
// Wenn der String kleiner als $num_char ist, wird er direkt ausgegeben
if ($num_chars > strlen($str))
return $ret;
$added_chars = 0;
while (is_word_end (substr($ret, -1)) != 1 && $added_chars++ < 20)
$ret = $ret.substr($str, $num_chars++, 1);
return $ret;
}
> wie könnte es in php möglich sein, einen vorhanden string von maximal 200
> zeichen auf eine länge von 10 worten zu kürzen und hintendran "..." zu
> hängen? wäre die zerlegung mit explode() anhand der leerzeichen ein
mögliche
> lösung?
Einfach StrShorten ($dein_super_string, $anzahl_der_zeichen) aufrufen und
gluecklich sein. Die "..." musst du selbst noch dranhaengen.
Gruss,
Matthias
--
Matthias Luedtke, matthias-luedtke_(at)_gmx.de
Afgrnd der Ensparngsmassnhmen bei den Onlne-Kostn ist ab sfort in jedm Wrt
von mhr als dri Buchstabn mindestns ein Vkal wegzlassn.
php::bar PHP Wiki - Listenarchive