phpチュートリアルのページネーションコード
//いくつかのグローバル変数を定義します:
//ファイルの繰り返しインクルードによるエラーを回避するために、関数が存在するかどうかを判断するための条件が追加されます:
$page = $_get[ページ];
if(!function_exists(pageft)){
//関数 pageft() を定義します。3 つのパラメーターの意味は次のとおりです:
//$totle: 情報の総数
; //$displaypg: 各ページに表示される情報の数。ここでのデフォルト設定は 20 です。 //$url: ページング ナビゲーションのリンクは、別のクエリ情報「page」を追加することを除いて、この URL と同じです。
// デフォルト値はこのページの URL (つまり、$_server["request_uri"]) に設定する必要がありますが、デフォルト値の右側は定数のみにできるため、デフォルト値は空の文字列に設定されます。次に、関数のページ URL 内でこの値を設定します。
function pageft($totle,$displaypg=20,$url=''){
//$page: 現在のページ番号
//ここの「$displaypg」を関数外からアクセスできるようにするために、グローバル変数として設定します。変数をグローバル変数として再定義すると、元の値が上書きされるため、ここで再代入することに注意してください。
//$firstcount: (データベース チュートリアル) クエリの開始項目
//$pagenav: ページ ナビゲーション バーコード。関数内では出力されません
//$_server: このページの URL「$_server["request_uri"]」を読み取るために必要です。
グローバル $page,$firstcount,$pagenav,$_server;
$globals["displaypg"]=$displaypg;
if(!$page) $page=1;
// $url が空の値であるデフォルト値を使用する場合、割り当てられる値はこのページの URL です:
if(!$url){ $url=$_server["request_uri"];}
//URL分析:
$parse_url=parse_url($url);
//処理された URL のクエリ文字列を元の URL のクエリ文字列に置き換えます:
$url_query=$parse_url["query"] //URLのクエリ文字列を別途取得します
if($url_query){
//URL にはページ番号情報が含まれている可能性があるため、新しいページ番号情報を追加するにはそれを削除する必要があります。
//ここでは正規表現が使用されています。「PHP の正規表現」を参照してください
$url_query=preg_replace("/(^|&)page=$page/","",$url_query);
$url=str_replace($parse_url["クエリ"],$url_query,$url);
//URL の後にページクエリ情報を追加しますが、割り当てを待ちます:
if($url_query) $url.="&page"; else $url.="ページ";
//ページ番号計算:
}その他{
$url.="?ページ";
}
$lastpg=ceil($totle/$displaypg); //最後のページも総ページ数になります
//ページングナビゲーションバーコードの開始:
$page=min($lastpg,$page);
$prepg=$page-1; //前のページ
$nextpg=($page==$lastpg ? 0 : $page+1); //次のページ
$firstcount=($page-1)*$displaypg;
$pagenav="表示番号 ".($totle?($firstcount+1):0)."-".min($firstcount+$displaypg,$totle). " レコード、合計 $totle レコード";
//ページが 1 つしかない場合は、関数からジャンプします:
if($lastpg<=1) return false;
$pagenav.=" ホームページ ";
if($prepg) $pagenav.=" 前のページ "; else $pagenav.=" 前のページ ";
//ドロップダウン ジャンプ リスト、すべてのページ番号をループします:
if($nextpg) $pagenav.=" 次のページ "; else $pagenav.=" 次のページ ";
$pagenav.=" 最後のページ ";
$pagenav.="ページに移動 $lastpg のページ";
}
}