Originariamente inviato da Necsus
Come potrei risolvere la situazione?
Codice PHP:
$contenuto = $row['contenuto']; // Preleva la stringa dal DB
echo "<td>" . limitaStringa($contenuto, 1000) . "</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", $n, strlen($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;
}