function getSearchUrl($arr = array()) { static $_url = array(); if (!$_url) { $url = getUrlStrList(array(), true); unset($url['g'], $url['c'], $url['m']); $_url = $url; } $url = $_url; if ($arr) { foreach ($arr as $key => $val) { if (!is_null($val)) { $url[$key] = $val; } elseif (isset($url[$key])) { unset($url[$key]); } } } return $url; }
function page($total, $page, $showId = '', $pageSize = 20, $mypage = 'p', $url = '', $maxLength = 5) { $page = intval($page); $page = $page < 1 ? 1 : $page; $start = ($page - 1) * $pageSize; $totalPage = ceil($total / $pageSize); $totalPage = $totalPage < 1 ? 1 : $totalPage; $page = $page > $totalPage ? $totalPage : $page; $showType = 'href'; if (!empty($showId)) { $showType = 'href="javascript:;" rel'; $showId .= '_pagebox'; } $urlHome = ''; //如果$url使用默认,即空值,则赋值为本页URL: if (!$url) { // $url = $_SERVER['REQUEST_URI']; $urlHome = U(getUrlStrList(array($mypage => null), true)); } //===========解析参数开始,主要为去掉分页标示====== if (C('System', 'path_mod') == '1' && C('System', 'postfix')) { //开启路由模式 $urlHome = str_replace(C('System', 'postfix'), '', $urlHome); } else { if (!strExists($urlHome, '?')) { $urlHome .= '?'; } else { $urlHome .= '&'; } if (strExists($urlHome, '?&')) { $urlHome = str_replace('?&', '?', $urlHome); } } //===========解析参数结束,主要为去掉分页标示====== $pageTable = ''; //aways in the pages $pageTable = '<div id="' . $showId . '" class="pagebox">'; $pageTable .= '<span class="total">共 ' . $total . ' 条 <font class="red">' . $page . '</font>/' . $totalPage . '页</span>'; //显示第一页 if ($page == 1) { $pageTable .= '<span class="nolink">上页</span><span class="nonce">1</span>'; } else { $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $page - 1) . '" target="_self">上页</a><a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, 1) . '" target="_self">1</a>'; } //循环中间页码 if ($totalPage < $maxLength * 2) { $loopStart = 2; $loopEnd = $totalPage - 1; } else { $loopStart = $page - $maxLength; $loopStart = $loopStart < 2 ? 2 : $loopStart; $loopEnd = $page + $maxLength; $loopEnd = $loopEnd < $maxLength * 2 ? $maxLength * 2 : $loopEnd; $loopEnd = $loopEnd > $totalPage ? $totalPage - 1 : $loopEnd; } //... link $linkStart = $loopStart - $maxLength < 2 ? 2 : $loopStart - $maxLength; $linkEnd = $loopEnd + $maxLength > $totalPage ? $totalPage : $loopEnd + $maxLength; if ($loopStart > 2) { $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $linkStart) . '" target="_self">...</a>'; } //中间链接 for ($i = $loopStart; $i <= $loopEnd; $i++) { if ($page == $i) { $pageTable .= '<span class="nonce">' . $i . '</span>'; } else { $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $i) . '" target="_self">' . $i . '</a>'; } } if ($loopEnd < $totalPage - 1) { $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $linkEnd) . '" target="_self">...</a>'; } //末页链接 if ($totalPage != 1) { if ($page == $totalPage) { $pageTable .= '<span class="nonce">' . $totalPage . '</span><span class="nolink">下页</span>'; } else { $pageTable .= '<a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $totalPage) . '" target="_self">' . $totalPage . '</a><a ' . $showType . '="' . _mkpageurl($urlHome, $mypage, $page + 1) . '" target="_self">下页</a>'; } } else { $pageTable .= '<span class="nolink">下页</span>'; } $pageTable .= '</div>'; //输出分页代码 return $pageTable; }