Autor Zpráva
23k
Profil
Jeste jednou dnes. Pri vypise nejnovejsich komentaru pouziji substr aby se mi nevypsal cely komentar prislusneho hrace. Nicmene se mi dost casto stane ze se "ufikne" pulka slova.

Jak by se to dalo osetrit?

Diky
23k
Profil
tak uz to mam. Poradil mi schopnejsi kolega v praci :). Kdyby to nekoho zajimalo =>
$string = text z Databaze ....
$string = preg_replace("/\s[a-z0-9]+$/","",$string);
printf
Profil *
taky by se dalo po uříznutí najít poslední mezeru a odříznout i text za ní (případně doplnit tři tečky, podle potřeby)
halogan
Profil
23k: Je to pěkný způsob, ale AFAIK by nešel s UTF, protože PHP používá starou PCRE knihovnu, takže by a-z nebralo diakritiku. Já to řeším delším způsobem:

function perex($text, $length = 500, $ending = "...")

{
$text = mb_substr($text, 0, $length);
$pos = mb_strrpos($text, " ");
$text = mb_substr($text, 0, $pos);
$text .= $ending;
return $text;
}


Samozřejmě to jde zkrátit beze změny, ale mám to přehledně.
23k
Profil
Pekna fce halogane, smysl chapu, ale tohle bych nedal. No jestli ti to neva, tak uz to truni v utrobach meho skriptu. Diky :)
llook
Profil
Já bych hledal spíš první mezeru před stanovenou délkou:

$delka = 200;
$string = substr($string, 0, $delka);
$string = substr($string, 0, strrpos($string, ' '));
Toto téma je uzamčeno. Odpověď nelze zaslat.