sanırım top20 bölümünü göndermişsin cevap verebilmek için daha aşağıdaki kodlar lazım. ama sorunu söyliyim içeriğin bastırıldığı yerde substr ile içeriğin istemediğin uzunlukta harf sayısından sonrasını almaman gerekiyor.
+ olarak
$kategoriler_db_baslik2 = substr($kategoriler_db_baslik,0,18); 
if(strlen($kategoriler_db_baslik) >= 18) 
{ $kategoriler_db_baslik2 .= "..."; }
kısmını
if(strlen($kategoriler_db_baslik) >= 18) 
{ $kategoriler_db_baslik2 = substr($kategoriler_db_baslik,0,18)."..."; 
}else{
$kategoriler_db_baslik2=$kategoriler_db_baslik;
}
şeklinde yaparsan benimde gözüme batmaz