<?php
$file=@file("file.txt");
$count=count($file);
$link="<a href='news.php?n=5'>5</a>";
$link2="<a href='news.php?n=10'>10</a>";
$link3="<a href='news.php?n=20'>20</a>";
// получаем кол-во строк
if(isset($_GET["n"])):
$n=$_GET["n"];
else: $n="5";
endif;
$temp_array=array("5","10","20");
if(!ctype_digit($n) or !in_array($n,$temp_array)):
$n="15";
endif;
switch($n):
case 5:
$max="5"; $link="<b>5</b>";
break;
case 10:
$max="10"; $link2="<b>10</b>";
break;
case 20:
$max="20"; $link3="<b>20</b>";
break;
endswitch;
$total=ceil($count/$max);
// вводим переменную, указывающую номер страницы
if(empty($_GET["p"])){$_GET["p"]="1";}
$p=$_GET["p"];
if(!ctype_digit($p) or $p>$total):
$p="1";
endif;
$first=$p*$max-$max;
$last=($p*$max)-1;
print "Строк на страницу: $link | $link2 | $link3<br><br>";
for($i=$first;$i<=$last;$i++):
if(@$file[$i]){print "$file[$i]<br>";}
endfor;
if($total>0):
#две назад
print "<div>";
if(($p-2)>0):
$ptwoleft="<span id='first_page_link'><a class='first_page_link' href='news.php?n=$n&p=".($p-2)."'>".($p-2)."</a></span> ";
else:
$ptwoleft=null;
endif;
#одна назад
if(($p-1)>0):
$poneleft="<span id='first_page_link'><a class='first_page_link' href='news.php?n=$n&p=".($p-1)."'>".($p-1)."</a></span> ";
$ptemp=($p-1);
else:
$poneleft=null;
$ptemp=null;
endif;
#две вперед
if(($p+2)<=$total):
$ptworight=" <span id='first_page_link'><a class='first_page_link' href='news.php?n=$n&p=".($p+2)."'>".($p+2)."</a></span>";
else:
$ptworight=null;
endif;
#одна вперед
if(($p+1)<=$total):
$poneright=" <span id='first_page_link'><a class='first_page_link' href='news.php?n=$n&p=".($p+1)."'>".($p+1)."</a></span>";
$ptemp2=($p+1);
else:
$poneright=null;
$ptemp2=null;
endif;
# в начало
if($p!=1 && $ptemp!=1 && $ptemp!=2):
$prevp="<span id='first_page_link'><a href='news.php?n=$n&p=1' class='first_page_link' title='В начало'><<</a></span> ";
else:
$prevp=null;
endif;
#в конец
if($p!=$total && $ptemp2!=($total-1) && $ptemp2!=$total):
$nextp=" ... <span id='first_page_link'><a href='news.php?n=$n&p=".$total."'".$total."' class='first_page_link'>$total</a></span>";
else:
$nextp=null;
endif;
print "<br>".$prevp.$ptwoleft.$poneleft.'<span class="num_page_not_link"><b>'.$p.'</b></span>'.$poneright.$ptworight.$nextp;
print "</div>";
endif;
?>
file.txt:
Строка 1
Строка 2
Строка 3
Строка 4
Строка 5
Строка 6
Строка 7
Строка 8
Строка 9
Строка 10
Строка 11
Строка 12
Строка 13
Строка 14
Строка 15
Строка 16
Строка 17
Строка 18
Строка 19
Строка 20