prova ad abbassare 30 e portarlo a 3 vedi che ti da, se effettivamente le tronca o no in questa linea

$stringa=substr($stringa,0,30)."..."; //max 20 caratteri da visualizzare e dopo tronca il testo e aggiunge i 3 puntini classici