касательно постраничного вывода текста:
для того чтобы сделать постраничный вывод, тебе нужно определить какие-то критерии деления на страницы. если у тебя просто текст, без всяких заморочек, - то  это какой-то разделитель, или это определённое количество строк.
например:
<?
if (!isset($_GET["sdvig"])) { $_GET["sdvig"] = 0; } /* проверяем установлена ли переменная для сдвига.
$f = fopen("file.txt, "r");                                    /* открываем необходимый файл 
$count = -1;                                                    /* устанавливаем счётчик на 0 (правда у меня почему то в таком случае на страницу     
                                                                      /*получается информации на 1 текст меньше, поэтому я установила хитрый -1
while ($str = fgets($f)) {                                   /* пока файл ещё можно читать, то
	if (trim($str) == "* * *") {                          /* ищем разделитель, от чего нам считать?
		$count += 1;                                   
		if ($count == ($_GET["sdvig"]+5)) {    /* если сдвиг достиг 5 (это кол-во выводимого текста), прервать цикл и начать заново
			break;
		}
	}
	if (($count >= $_GET["sdvig"]) and ($count < ($_GET["sdvig"]+5))) {    /* после каждого текста включить символ брейка
	echo $str."<br>";
	}
}
echo "<br>";
if ($_GET["sdvig"] > 0) {
	echo "<a href='index.php?action=".$_GET["action"]."&action2=".$_GET["action2"]."&sdvig=".($_GET["sdvig"]-5)."'>Предыдущая</a>";
}
if ($str != FALSE) {
	echo "  |  <a href='index.php?action=".$_GET["action"]."&action2=".$_GET["action2"]."&sdvig=".($_GET["sdvig"]+5)."'>Следующая</a>";
}
?>
немного переделай, для того, чтобы выводить номера страниц - и наверное ты будешь доволен 
