看了一些示例的代码:if($num > $perpage) { //$num为总计录数,$perpage为每页显示几条记录
$page = 11; //$page为页跨度,即一共显示几个页码链接
$offset = 5; //$offset为偏移量,即当前页码链接前面显示几个页码链接
$realpages = @ceil($num / $perpage);
$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curpage + 1 - $from; //就是这一句不懂
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
}
请问一句上面代码中红色所标示的那句是什么含义?我个人觉的,上面代码中的这几句
if($from < 1) {
$to = $curpage + 1 - $from; //就是这一句不懂
$from = 1;
if($to - $from < $page) {
$to = $page;
}
}
写成这样更好,不知是否正确
if($from < 1) {
$to = min($page,$pages);
$from = 1;
}
$page = 11; //$page为页跨度,即一共显示几个页码链接
$offset = 5; //$offset为偏移量,即当前页码链接前面显示几个页码链接
$realpages = @ceil($num / $perpage);
$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $from + $page - 1;
if($from < 1) {
$to = $curpage + 1 - $from; //就是这一句不懂
$from = 1;
if($to - $from < $page) {
$to = $page;
}
} elseif($to > $pages) {
$from = $pages - $page + 1;
$to = $pages;
}
}
请问一句上面代码中红色所标示的那句是什么含义?我个人觉的,上面代码中的这几句
if($from < 1) {
$to = $curpage + 1 - $from; //就是这一句不懂
$from = 1;
if($to - $from < $page) {
$to = $page;
}
}
写成这样更好,不知是否正确
if($from < 1) {
$to = min($page,$pages);
$from = 1;
}
这两段程序的含义不同,楼主的min函数只是取得了两个中的最小值,却并没有进行判断$to - $from < $page
下面这个不是很好用吗?//分页函数
function fenye($fenyeurl,$page,$totalnum,$perpage,$rewrite=0){
$page = max($page,1);
$totalpage = ceil($totalnum/$perpage);
$totalpage = $totalpage < 1 ? 1 :$totalpage;
$rangepage = 6; if($page <= $rangepage){
$startpage = 1;
}else{
if(($page + $rangepage) > $totalpage && ($totalpage - $rangepage*2) > 0){
$startpage = $totalpage - $rangepage*2 + 1;
}else{
$startpage = $totalpage <= $rangepage*2 ? 1:($page - $rangepage);
}
} $fileext = $rewrite ? '.html':''; $html = '<ul>';
$html .= '<li><a href="'.$fenyeurl.'1'.$fileext.'">«</a></li>';
$html .= $page > 1 ? '<li><a href="'.$fenyeurl.($page-1).$fileext.'">[Prev]</a></li>':'';
for($i = $startpage;$i < ($startpage + $rangepage*2);$i++){
$html .= '<li><a href="'.$fenyeurl.$i.$fileext.'"'.($page == $i ? ' class="curr"':'').'>'.$i.'</a></li>';
if($i == $totalpage) break;
}
$html .= $page < $totalpage ? '<li><a href="'.$fenyeurl.($page+1).$fileext.'">[Next]</a></li>':'';
$html .= '<li><a href="'.$fenyeurl.$totalpage.$fileext.'">»</a></li>';
$html .= '</ul>'; return $html;
}