Originariamente inviato da Necsus
Come potrei risolvere la situazione?
Codice PHP:
$contenuto $row['contenuto']; // Preleva la stringa dal DB
echo "<td>" limitaStringa($contenuto1000) . "</td>"// Stampa la stringa


function limitaStringa($str$n) {
    
// se non si supera il limite si ritorna la stringa così com'è
    
if (strlen($str) <= $n)
        return 
$str;
    
    
// divido in 2 parti la stringa: la parte che verrà sicuramente presa ed il resto
    
$parte1 substr("$str"0$n);
    
$parte2 substr("$str"$nstrlen($str));
    
    if (
$parte2[0] == ' ')
        
// se il primo carattere del secondo pezzo di stringa è ' ' allora è il primo pezzo è delimitato e viene restituito così com'è
        
$strRet $parte1;
    else {
        
// in caso contrario, si prende anche la prima parola della parte2 (cioè finquando non c'è uno spazio)
        
$parole explode(" "$parte2);
        if (
count($parole) > 0)
            
$strRet $parte1 $parole[0];
        else
            
$strRet $parte1 $parte2// CASO ESTREMO: non ci sono spazi. Si può scegliere se troncare oppure prendere tutta la stringa (ho scelto la seconda)
    
}
    
    return 
$strRet;