Te paso un pedazo del codigo de FIRMILLA XP (by Camargo), que hace algo como lo que tu quieres... tal vez puedas modificar tu codigo para leerlo con file y no con fopen...
Código PHP:
$ficherobase = file("base.txt");
$largo = sizeof($ficherobase);
$largo = $largo - 1;
$maximo=20;
$cuenta=1;
for($i=$largo ; $i>-1 ; $i--) {
if ($cuenta==$maximo) { break; }
$mensaje = explode("|", $ficherobase[$i]);
echo "<table width=120 border=0 cellspacing=1 align=center cellpadding=2 bgcolor=#CCCCCC>";
echo "<tr>";
echo "<td bgcolor=$primer width=120><font size=$fontsize color=$fontcolor face=$fontface>-$mensaje[0]-";
echo "<font size=$fontsize color=$fontcolor face=$fontface>$mensaje[1]</td>";
echo "</tr></table><table width=100 height=1><tr><td height=1></td></tr></table>";
$cuenta++;
}