webForumDet fria alternativet

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

PHP

2 svar · 312 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#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;
        }
    }
257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)