Даю совсем уж чайниковую консультацию. Написанный тобой скрипт совсем не оптимален (и очень даже совсем).
Во-первых, зачем ты считываешь данные из файла, а затем разбиваешь их на строки, которые потом преобразуешь в массив, который потом пользуешь целиком, когда практически все за тебя уже сделали добрые создатели PHP.
Для того, чтобы считать строки из файла есть специальная функция file(), которая не требует от тебя даже открытия файла и возвращает массив, разбитый на строки.
Далее, уж коли ты делаешь массив - оптимизируй его, позволь php делать то, что он умеет делать. Функция array_chunk разбивает массив на куски.
Ну и, наконец, зачем использовать один цикл в котором проводится проверка дабы не гипперлинкить текущую страницу, когда такая проверка проводится за тебя компилятором (при прокрутке цикла)? Разбиваешь его на два - и нет проблем.
Итак, я думаю, ты понял то, что я хотел тебе сказать
Поэтому на сладкое привожу код, который делает почти все, что тебе хочется.
Итак, файл myphotos.txt содержит информацию в формате :
адрес_картинки::подпись_картинки.
Поехали...
<?php
if (!isset($cur_chunk)) $cur_chunk=0;
$names=file(\'myphotos.txt\');
$names=array_chunk($names,20);
foreach ($names[$cur_chunk] as $photo)
{
$photo=explode ("::",$photo);
print "<a href=\'".$photo[0]."\'>".$photo[1]."</a>
";
}
print "<hr>
";
for ($i=0;$i<$cur_chunk;$i++)
print "<a href=\'test.php?cur_chunk=$i\'>$i</a> | ";
print "$i | ";
for ($i=$cur_chunk+1;$i<count($names);$i++)
print "<a href=\'test.php?cur_chunk=$i\'>$i</a> | ";
?>