Witam serdecznie,
Mam różnej długości artykuły. Artykuł przechowuję w zmiennej $text.
Artykuły zawierają HTML (linki, pogrubienia, zdjęcia itp).

Potrzebuję rozbić tekst i przypisać do 4 zmiennych:

  • $zmienna1 = pierwsze 400 wyrazów,
  • $zmienna2 = kolejne 600 wyrazów,
  • $zmienna3 - kolejne 300 wyrazów,
  • $zmienna4 - WSZYSTKO co pozostało smile.gif

Potrzebuję całe wyrazy, nie ucięte w połowie tagi html (obrazki, pogrubienia itp).

Wie ktoś może jak to zrobić?

Mam taką funkcję która działa poprawnie (jeśli chodzi o dzielenie tekstu z zachowaniem html):

 function trim_text($input, $length, $ellipses = true, $strip_tag = true,$strip_style = true) {
    //strip tags, if desired
    if ($strip_tag) {
        $input = strip_tags($input);
    }
 
    //strip tags, if desired
    if ($strip_style) {
        $input = preg_replace('/(<[^>]+) style=".*?"/i', '$1',$input);
    }
 
    if($length=='full')
    {
 
        $trimmed_text=$input;
 
    }
    else
    {
        //no need to trim, already shorter than trim length
        if (strlen($input) <= $length) {
        return $input;
        }
 
        //find last space within length
        $last_space = strrpos(substr($input, 0, $length), ' ');
        $trimmed_text = substr($input, 0, $last_space);
 
        //add ellipses (...)
        if ($ellipses) {
        $trimmed_text .= '...';
        }       
    }
 
    return $trimmed_text;
}

tylko nie wiem jak przypisać przedziały:

  • $zmienna1 = pierwsze 400 wyrazów,
  • $zmienna2 = kolejne 600 wyrazów,
  • $zmienna3 - kolejne 300 wyrazów,
  • $zmienna4 - WSZYSTKO co pozostało

Wie ktoś może jak to zrobić?