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;
        }
    }
253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)