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