我目前使用下面的php分页脚本。分页显示每页有六个结果,包含上一个/下一个链接。我想知道是否有人可能知道我可以添加什么,以便分页还显示前两页和最后两页的链接?就像这个例子页面分页:http://www.winelog.net/wines/OregonPHP分页显示前两页和最后两页
$data=file("data.txt");
$pages=0;
foreach($data as $temp){
$x=explode("|",$temp);
if($x[0] > 0){
$pages=$pages+1;
}
}
if($_GET['p']){
$page=$_GET['p'];
}
if($_GET['i']){
$index=$_GET['i'];
}
if($index == "p"){
$page=$page-1;
}
if($index == "n"){
$page=$page+1;
}
if($page < 1){
$page=1;
}
if($page > $pages){
$page=$pages;
}
$line=$data[$page-1];
$fields=explode("|",$line);
显示的导航:
$show=6;
echo "<li><a href='?i=p&p=$page'>« PREV</li></a>";
if($page-($show/2) > 1){
$temp=$page-$show;
echo "<li><a href='?p=$temp'>...</li></a>";
}
if($page-($show/2) >= 1 && $page+($show/2) <= $pages){
$start=$page-($show/2);
$stop=$page+($show/2);
}
if($page-($show/2) < 1){
$start=1;
$stop=$show;
}
if($page+($show/2) > $pages){
$start=$pages-$show;
$stop=$pages;
}
for($i=$start; $i<=$stop; $i++){
if($page==$i){
echo "<li class='active'>$i</li></a>";
}
else{
echo "<li><a href='?p=$i'>$i</li></a>";
}
}
if($page+($show/2) < $pages){
$temp=$page+$show;
echo "<li><a href='?p=$temp'>...</li></a>";
}
echo "<li><a href='?i=n&p=$page'>NEXT »</li></a>";
我或许会去jQuery的方式。它简单而干净。 http://plugins.jquery.com/project/pagination –
@Nikhil:为什么??!你正在创建对Javascript的依赖,插件会比较慢,他可能会把所有的数据发送到页面 - 这很慢,很可能。停止向客户推送不必推到那里的东西! – 2011-11-01 14:58:40