찾다
php教程PHP源码PHP分页函数仿Google分页

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;
         }
     }
 }
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전