Autor Zpráva
Akacko
Profil *
je nějaka funkce ktera mi z databaze vypiše jen určitý počet znaků a za ně doda třeba tři tečky?
gaminn
Profil *
function myfragment($str, $n, $delim='...') { // {{{
$len = strlen($str);
if ($len > $n) {
preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
return rtrim($matches[1]) . $delim;
}
else {
return $str;
}
}
jonge
Profil
Já bych to taky potřeboval, ale aby ty tečky byly až za nějakým slovem a ne uprostřed slova...
JPAS
Profil
jonge: Tak vyberte vždy jen první odstavec třeba, nebo prostě rozdělíte například po 200 znacích s tím, že pokud tam není mezera, tak uberete jeden znak a testujete zase mezeru...ne?
malek8
Profil *
ja by to dal takto


$text=explode(" ",$text); //tym rozdelime text na slova po medzerach

for ($i=0;$i<5;$i++) { //vypiseme 5 slov abo cez while a zastavime vypisovenie slov if($i==$pocetSlov) break

echo $vypis[$i];

}

echo "..."; //pridame bodky
gaminn
Profil *
jonge

No tak proč nepoužiješ tu funkci, co jsem napsal nahoře? Ta dělá přesně to, co potřebuješ.

malek8

Řekl bych, že to není zrovna efektivní metoda, navíc výstup takové funkce je dost nevyzpytatelný, málokdo chce vracet část textu po x slovech, ale spíš se chce přiblížit délce n znaků.
Akacko
Profil *
v té funkci nahoře si nadefinuji
$str = vypis z databaze;
$n = 100;
//funkce

a pořád mi piše, že první ani druhý argument pro fci bla bla bla chybi.

neite co s tím ?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0