KategorieProgramowanie

Jak przyciąć tekst do określonej ilości znaków ?

Częstym problemem jest konieczność przycięcia długich tekstów do krótkich fragmentów jak jest to robione np. w zajawkach aktualności. W tym celu napiszemy prostą funkcję, która z pewnością znajdzie wiele zastosowań.


function przytnijTekst($tekst, $max, $zakonczenie = '...') 
{
    /**
     * Jeśli tekst jest dłuższy od określonej 
     * ilości znaków dokonujemy modyfikacji, 
     * jeśli mamy do czynienia z kodowaniem 
     * UTF-8 używamy mb_strlen
     */
    if(strlen($tekst) > $max) 
    {
        //ilość znaków pomniejszamy o ilość 
        //znaków końcówki dopisywanej na koniec tekstu
        $max -= strlen($zakonczenie);

        //wycięcie tekstu o określonej ilości znaków
        $pozycja = strpos($tekst,' ',$max);
        $tekst = substr($tekst, 0, $pozycja);

        //na sam koniec doklejamy końcówkę
        $tekst .= $zakonczenie;
    }

    return $tekst;
}

$tekst = '
Oto pierwszy testowe zdanie, 
które będziemy ograniczać naszą nową wypasioną funkcją.
';

echo przytnijTekst($tekst, 45);
//rezultat: Oto pierwszy testowe zdanie, które...

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.