A lenti kódrészlet nem tesz egyebet, minthogy levágja a szövegünket a paramétertől kapott hosszúságra. Ez még önmagába nem nagy dolog, hisz a substr PHP függvény egyszerűen megoldja a feladatot. A függvény annyiban különbözik, hogy ez az utolsó szónál vágja le szövegünket. Ez rövid leírásoknál, címeknél hasznos lehet.
function trim_text($input, $length, $ellipses = true, $strip_html = true) { //ha ha paraméternek van értéke kiveszi a HTML elemeket if ($strip_html) { $input = strip_tags($input); } //csak akkor vágjuk le ha hosszabb mind amit mi szeretnénk if (strlen($input) <= $length) { return $input; } //megkeressük az utolsó space -t $last_space = strrpos(substr($input, 0, $length), ' '); $trimmed_text = substr($input, 0, $last_space); //betesszük a levágást jelző karaktereket if ($ellipses) { $trimmed_text .= ' ...'; } //a levágott szöveg return $trimmed_text; } |
Nem rossz, de mért jó az, ha kiveszed a html tag -eket? Hisz akkor elveszik a formázás… Ha amúgy is formázott a szövegem, akkor nem fogom ezt használni a formázás miatt.
Egyébként jó.
Talán annyi lehetne rugalmasítani (nem tudom van-e ilyen szó :P), hogy a $ellipses default értéke „” (üres string), és akkor paraméterként meg lehet adni levágást jelző karaktereket, és egy if -el kevesebb.
Zogmund
A formazas leszedese az opcionalis. Sokszor pl mikor cimeket akarunk kiiratni, vegul is csak a szoveget akarjuk levagni a formazas alltalaban utolag kerul ra. Ennek ellenere $strip_html false -ra allitva kiutjuk ezt a lehetoseget.
A masodik megjegyzesedben teljesen igazat adok neked. Nekem „…” kellett s ezt hagytam, de siman ha ures stringre allitanam default akkor jobb lenne, hisz ha van erteke !empty akkor az ellipses erteket ragasztanam a szoveg vegre.
Koszi a hozzaszolast mindenkeppen jo otlet volt ez az ellipses -es dolog.
Az $ellipses -es modositast valahogy igy kepzelnem el:
helyett
Meg azzal egeszitenem ki, hogy a levagast jelzo karakterek csak akkor legyenek benne, ha a szoveg tenylegesen hoszabb mind a $lenght.
gomby: szerintem nem kell az if, hisz ha az $ellipses úgy is empty, akkor a konkatenáció nem fűz hozzá semmit! Ezért is mondtam, hogy így nem kell az az if.
Szerintem ;)
Igen helyes, nem tudom miert irtam az utolso hozzaszolasomat :)
Köszönöm… Most sokat segítettél ezzel a fv-el:)