PHP でデータ ページングを実装する一般的な方法

WBOY
リリース: 2016-07-25 08:45:27
オリジナル
989 人が閲覧しました
  1. function show_page($count,$page,$page_size)
  2. {
  3. $page_count = ceil($count/$page_size) //総ページ数を計算します
  4. $init=1;
  5. $page_len=7 ;
  6. $max_p=$page_count;
  7. $pages=$page_count;
  8. //現在のページ番号を判定
  9. $page=(empty($page)||$page<0)?1:$page;
  10. //Get現在のページの URL
  11. $url = $_SERVER['REQUEST_URI'];
  12. // URL 内の元のページ パラメータを削除して、新しいページ パラメータを追加します
  13. $parsedurl=parse_url($url);
  14. $url_query = isset($parsedurl ['クエリ ']) $parsedurl['クエリ']:'';
  15. if($url_query != ''){
  16. $url_query = preg_replace("/(^|&)page=$page/",' ',$ url_query);
  17. $url = str_replace($parsedurl['query'],$url_query,$url);
  18. if($url_query != ''){
  19. $url .= '&';
  20. }
  21. } else {
  22. $url .= '?';
  23. }
  24. //ページング関数コード
  25. $page_len = ($page_len%2)?$page_len:$page_len+1; //ページ番号の数
  26. $pageoffset = ( $page_len-1 )/2; //ページ番号の左右のオフセット
  27. $navs='';
  28. if($pages != 0){
  29. if($page!=1){
  30. $navs. ="ホームページ " //最初のページ
  31. $navs.="前のページ"; //前のページ
  32. } else {
  33. $navs .= "ホームページ
  34. $navs .= "前のページ";
  35. }
  36. if($pages>$page_len)
  37. {
  38. //現在のページが以下の場合または左と等しい Shift
  39. if($page $init=1;
  40. $max_p = $page_len;
  41. }
  42. else //現在のページが左のオフセットより大きい場合
  43. {
  44. / /現在のページ番号の右オフセットが最大ページ数を超えている場合
  45. if($page+$pageoffset>=$pages+1){
  46. $init = $pages-$page_len+1;
  47. }
  48. else
  49. {
  50. //計算左右両方のオフセットが存在する場合
  51. $ init = $page-$pageoffset;
  52. $max_p = $page+$pageoffset;
  53. }
  54. }
  55. }
  56. for($i=$init;$i<=$max_p;$i++ )
  57. {
  58. if($i= =$page){$navs.="".$i.'';}
  59. else {$navs.= " ".$i."";}
  60. }
  61. if($page!=$pages)
  62. {
  63. $navs.=" < ;a href="".$url."page=".($page+1)."">次のページ ";//次のページ
  64. $navs .="最後のページ"; //最後のページ
  65. } else {
  66. $navs .= "< span class='disabled '>次のページ";
  67. $navs .= "最後のページ";
  68. }
  69. echo "$navs";
  70. }
  71. }
コードをコピー

ページネーション、PHP


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート