/*分页函数$num:总共多少篇$p:当前页码$q:当前搜索的内容$str:地址url参数(问号后面的东西)$pn:每页显示数量{fl($num,$p,$q,$pn)}*/function fy($num,$p,$str='?mod=zzwla&dosubmit=1',$q='',$pn=10){    if(empty($num)) return false;    $ps=ceil($num/$pn);    $q = $q ? '&q='.urlencode($q) : '';    if($p>1)        echo '<a href="'.$str.$q.'&p='.($p-1).'"> 上一页 </a>';    if($ps<15)        for($i=1;$i<15;++$i)        {            if($i<=$ps)                echo '<div class="'.($i==$p ? ('page pc"> '.$i.' '):('page"><a href="'.$str.$q.'&p='.$i.'"> '.$i.' </a>')).'</div>';        }    else        for($i=$p-7;$i<$p+7;++$i)        {            if($i>0 && $i<=$ps)                echo '<div class="'.($i==$p ? ('page pc"> '.$i.' '):('page"><a href="'.$str.$q.'&p='.$i.'"> '.$i.' </a>')).'</div>';        }    if($p!=$ps)        echo '<a href="'.$str.$q.'&p='.($p+1).'"> 下一页 </a>';}
本篇文章来源于PHP论坛 文章地址:http://bbs.php.cn/viewthread.php?tid=33507&highlight=%B7%D6%D2%B3
这个看得有些晕,哪位可以帮忙讲解一下吗?

解决方案 »

  1.   

    类似google分页,总页数小于15就将全部页数列出,如果大于15,当前页出现在分页导航中间,左边前7页,后边后7页,大概是这个样子。
      

  2.   

    echo ' <a href="'.$str.$q.'&p='.($p-1).'"> 上一页 </a>'; 
    echo ' <div class="'.($i==$p ? ('page pc"> '.$i.' '):('page"> <a href="'.$str.$q.'&p='.$i.'"> '.$i.' </a>')).' </div>'; 
    这两句不大懂~
      

  3.   

    哪个地方不懂呢?就两句echo
    echo '  <a href="'.$str.$q.'&p='.($p-1).'"> 上一页  </a>';//如果页数大于1,就出现上一页的链接
    echo '  <div class="'.($i==$p ? ('page pc"> '.$i.' '):('page">  <a href="'.$str.$q.'&p='.$i.'"> '.$i.'  </a>')).'  </div>';//分页导航循环过程中,如果循环到当前页,就使用组合样式page pc,如果非当前页,就使用默认样式page
      

  4.   


    echo '  <a href="'.$str.$q.'&p='.($p-1).'"> 上一页  </a>';//如果当前页大于1,就出现上一页的链接
      

  5.   

    href="'.$str.$q.'&p='.($p-1).'"这一句不大懂
      

  6.   

    可是没有网站网址哇,它说$str='?mod=zzwla&dosubmit=1',是问号后面的东西,那前面的呢,比如:www.baidu.com/s.?bs=%a%b这个,它只有问号后面的部分,那问号前面的网址呢
      

  7.   

    。,?之前没有值就默认链接到当前页,怎么连这个都。
    echo "<a href='?p=1'>click me</a>";