Autor Zpráva
Pechy.cz
Profil
Zdravím,
mám dotaz, jak zjistím, kolik znaků je v proměnné. Potřebuji nějak vhodně vyřešit krácení textu v proměnné.

Př. Mám text: Anička šla na nákup s babičkou. // jenže tento text se mi nevleze do tabulky
Potřebuji ho zkrátit příbližně na 20 znaků, takže mi z něj vyleze "Anička šla na nákup ". Za to dodám tři tečky, aby bylo poznat, že má text pokračování. Normálně to dělám takto:
    $text=substr($text, 0, 20);
    echo "$text...";
Jenomže, když je výraz kratší než těch maximálních 20, nevypadají tam ty 3 tečky dobře.
Př. "Anička..."
Určitě jde nějak zjistit počet znaků v proměnné a nastavit podmínku. Poprosil bych o radu.
Popřípadě jestli by šlo to i nějak dělit podle slov, aby tam nebyli 3 slova a čtvrtý z půlky, ale aby se tam v takovým případě zapsali jen ty 3 slova.

Předem děkuji za odpověď
panther
Profil
Pechy.cz:
strlen, resp. mb_strlen
Pechy.cz
Profil
panther:
Díky
Jan Tvrdík
Profil
Pechy.cz:
Popřípadě jestli by šlo to i nějak dělit podle slov
Řešení Jakuba Vrány:
if (strlen($text) <= $limit) {
    echo $text;
} else {
    $text = substr($text, 0, $limit+1);
    $pos = strrpos($text, " "); // v PHP 5 by se dal použít parametr offset
    echo substr($text, 0, ($pos ? $pos : -1)) . "...";
}
Pechy.cz
Profil
Jan Tvrdík:
Díky moc...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: