Ha solo un piccolo difetto. Tronca con precisione al centesimo carattere, anche tagliando una parola a metà. Vi propongo un'altra soluzione che tiene conto anche delle parole. Non è così precisa (nel senso che stampa almeno 100 caratteri, poi possono essere 105 perchè non tronca una parola a metà) ma evita quella brutta cosa.

Codice PHP:
function tronca_stringa($stringa$max_length)

    
$Str_Array explode(" "$stringa);
    
$Result "";
    
$caratteri 0;
    
$inc 0;
    
        while(
$caratteri $max_length)
        {
            
$caratteri $caratteri strlen($Str_Array[$inc]) + 1;
            
$Result .= $Str_Array[$inc] . " ";
            
$inc++;
        }
    
    
$Result .= "...";
    
    return 
$Result;