So verwenden Sie die PHP-Paging-Funktion

墨辰丷
Freigeben: 2023-03-30 17:56:02
Original
1430 Leute haben es durchsucht

本篇文章主要介绍php分页函数的用法,感兴趣的朋友参考下,希望对大家有所帮助。

具体如下:

/**
 * 分页函数
 * @param int $total  总页数
 * @param int $pagesize 每页几条
 * @param string $pkey url中页面变量名称
 * @param string $url  基础url,其中的{page}会被替换为页码
 * 依赖函数 request_uri httpInt
 */
function page($total,$pagesize=10,$pkey='p',$url=null){
  $a_num=10;
  $first=' 首页 ';
  $last=' 尾页 ';
  $pre=' 上页 ';
  $next=' 下页 ';
  $a_num=$a_num%2==0?$a_num+1:$a_num;
  if(!$url){
    $url=preg_replace("/&?{$pkey}=[^&]{0,}/", '',request_uri());
    $url=strpos($url, '?')===FALSE?$url.'?'.$pkey.'={page}':$url.'&'.$pkey.'={page}';
  }
  $pages=ceil($total/$pagesize);
  $curpage=httpInt($pkey,false,1);
  $curpage=$curpage>$pages||$curpage<=0?1:$curpage;//当前页超范围置为1
  $body=&#39;&#39;;$prefix=&#39;&#39;;$subfix=&#39;&#39;;
  $start=$curpage-($a_num-1)/2;//开始页
  $end=$curpage+($a_num-1)/2; //结束页
  $start=$start<=0?1:$start;  //开始页超范围修正
  $end=$end>$pages?$pages:$end;//结束页超范围修正
  if($pages>=$a_num){//总页数大于显示页数
    if($curpage<=($a_num-1)/2){$end=$a_num;}//当前页在左半边补右边
    if($end-$curpage<=($a_num-1)/2){$start-=5-($end-$curpage);}//当前页在右半边补左边
  }
  for($i=$start;$i<=$end;$i++){
     if($i==$curpage){
       $body.=&#39;<b>&#39;.$i.&#39;</b>&#39;;
     }else{
       $body.=&#39;<a href="&#39;.str_replace(&#39;{page}&#39;,$i,$url).&#39;"> &#39;.$i.&#39; </a>&#39;;
     }
  }
  $prefix=($curpage==1?&#39;&#39;:&#39;<a href="&#39;.str_replace(&#39;{page}&#39;,1,$url).&#39;">&#39;.$first.&#39;</a><a href="&#39;.str_replace(&#39;{page}&#39;,$curpage-1,$url).&#39;">&#39;.$pre.&#39;</a>&#39;);
  $subfix=($curpage==$pages?&#39;&#39;:&#39;<a href="&#39;.str_replace(&#39;{page}&#39;,$curpage+1,$url).&#39;">&#39;.$next.&#39;</a><a href="&#39;.str_replace(&#39;{page}&#39;,$pages,$url).&#39;">&#39;.$last.&#39;</a>&#39;);
  $info=" 第{$curpage}/{$pages}页 ";
  $go=&#39;<script>function ekup(){if(event.keyCode==13){clkyup();}}function clkyup(){if(!/\d+/.test(document.getElementById(\&#39;gsd09fhas9d\&#39;).value)){alert(\&#39;请输入页码!\&#39;);return;};location=\&#39;&#39;.$url.&#39;\&#39;.replace(/\\{page\\}/,document.getElementById(\&#39;gsd09fhas9d\&#39;).value);}</script><input onkeyup="ekup()" type="text" id="gsd09fhas9d" style="width:40px;vertical-align:text-baseline;padding:0 2px;font-size:10px;border:1px solid gray;"/> <span id="gsd09fhas9daa" onclick="clkyup();" style="cursor:pointer;text-decoration:underline;">转到</span>&#39;;
  return $prefix.$body.$subfix.$info.$go;
}
/**
 * 说明:获取 _SERVER[&#39;REQUEST_URI&#39;] 值的通用解决方案
 */
function request_uri()
{
  if (isset($_SERVER[&#39;REQUEST_URI&#39;]))
  {
    $uri = $_SERVER[&#39;REQUEST_URI&#39;];
  }
  else
  {
    if (isset($_SERVER[&#39;argv&#39;]))
    {
      $uri = $_SERVER[&#39;PHP_SELF&#39;] .&#39;?&#39;. $_SERVER[&#39;argv&#39;][0];
    }
    else
    {
      $uri = $_SERVER[&#39;PHP_SELF&#39;] .&#39;?&#39;. $_SERVER[&#39;QUERY_STRING&#39;];
    }
  }
  return $uri;
}
/**
 * 获取HTTP传递的整数
 * @param string $key 参数名称
 * @param bool $ispost 采取POST传递方式,默认为真http://blog.ddian.cn
 * @return 整数,非法时默认为 $default
 */
 function httpInt($key, $ispost=true,$default=0) {
   if ($ispost) {
     if (isset($_POST[$key])) {
       if (empty($_POST[$key])) {
         return $default;
       } else {
         $val = trim($_POST[$key]);
         if (preg_match("/^\-?\d+$/", $val)) return intval($val);
         else return $default;
       }
     } else {
       return $default;
     }
   } else {
     if (isset($_GET[$key])) {
       if (empty($_GET[$key])) {
         return $default;
       } else {
         $val = trim($_GET[$key]);
         if (preg_match("/^\-?\d+$/", $val)) {
           return intval($val);
         } else {
           return $default;
         }
       }
     } else {
       return $default;
     }
   }
}
Nach dem Login kopieren

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

smarty自定义资源的定义与使用技巧

php使用历史记录功能

php针对当前编码的判断与对应的编码转换实现技巧

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die PHP-Paging-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!