Hur får man funktionen att bryta efter ett "helt" ord?

PHP

2 svar · 316 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Trådstart#1

Hej,

Jag håller på med en funktion som ska skriva ut en "preview" av ett foruminlägg och då har jag valt teckenantalet till 250. Nu blir det lite konstigt när jag använder substr() för då kapas ju orden hur som helst. Finns det något smart sätt man kan styra detta så att jag får med hela nästkommande ord eller att funktionen bryter efter det sista "hela" ordet som förekom i texten inom det angivna teckenintervallet?! :)

Medlem sedan maj 2004693 inlägg
Medlem sedan jan. 2005110 inlägg
#3

Jaha, här sitter man mitt i natten och smäller ihop en funktion för nöjes skull... :)

    function preview( $str, $length, $add_dots = True ){
        if( (strlen($str) > $length) and (strpos($str, ' ', $length-1) !== False) ){
            $tmp = substr($str, 0, strpos($str, ' ', $length-1));
            if( $add_dots ){
                $tmp .= '...';
            }
            return $tmp;
        }
        else{
            return $str;
        }
    }
262 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)