[php]
/*
感想
1. アドレスバーからURLを取得します
2. URL のクエリ部分、つまり、後でパラメーターが渡される部分を分析します。
3. クエリ部分を配列に解析します
4. 配列内のページ単位を +1 と -1 に変更して、2 つの新しい配列を形成します
5. 次に、新しい配列をクエリ部分に結合して、前のページと次のページの接続アドレスを合成します
*/
//ページクラス
クラスページ {
public $total; //データベースから取得されたアイテムの総数
public $prePage = 10 //ページごとのアイテム数
;
protected $curr= 1 //デフォルトの現在のページ番号
パブリック関数 __construct($total,$prePage='') {
$this->total = $total; // total 属性に合計エントリ情報を入れます
if ($prePage > 0) {
$this->prePage = $prePage; // perPage 属性に各ページの番号を入れます
}
//現在のページ番号を計算します
if (isset($_GET['page']) && ($_GET['page'] + 0) > 0) {
$this->curr = $_GET['page'] + 0;
}
}
//メイン関数
パブリック関数 showPage() {
if ($this->total
Return ''; // メインエントリ & lt; が空の文字列を直接返す場合
}
$cnt = ceil($this->total / $this->prePage) // 総ページ数を計算して切り上げます
//現在のページに従って、前のページと次のページを数えます
/*
URL を分析する場合、どのような状況がありますか?
xx.php
xx.php?id=5
xx.php?page=3
xx.php?id=5&page=3
//最終的に生成される URL には page=N が含まれている必要があります
$url = $_SERVER['REQUEST_URI']
$parse = parse_url($url) // URL 解析結果を配列に入れる
//print_r($parse);
//パラメータにページがあることを確認してください
if (!isset($parse['query'])) {
$parse['query'] = 'page=' .$this->curr;
}
// クエリ文字列を配列に分析し、ページ オプションが再度存在することを確認します
parse_str($parse['query'],$parms);
if (!array_key_exists('page', $parms)) {
$parms['page'] = $this->curr;
}
情况 // 上記の 4 つの状況をテストすると、ページ パラメーターを生成できます。
//print_r($parms);
//page 以外にパラメータがあるかどうかを判断します
if (count($parms) == 1) {
$url = $parse['?';
} } else {
unset($parms['page']);
$url = $parse($parms) .
}
// $url をエコーする
$prev = $this->curr - 1;
$next = $this->curr + 1;
//ホームページ
$indexLink = '
ホームページ';
//前のページ
$prevLink = '';
} else {
}
//次のページ
if ($next > $cnt) {
$nextLink = '';
} else {
}
//最後のページ
$lastLink = '
最後のページ';
//エコー $indexLink.' '.$nextLink '
//前のページ、1 2 3 4 5 次のページ
$start = $this->curr - (5-1)/2; // 左からページ番号を計算します
$end = $this->curr + (5-1)/2; //右からページ番号を計算します
//左側のページが既に 1 未満の場合は、1 未満の部分を右側に追加します
if ($start $end += (1 - $start);
$start = 1 //start = 1 を変更します
if ($end > $cnt) {
$end = $cnt;
}
}
超 // 右側を超える部分を左側に補います。
if ($end > $cnt) {
$start -= ($end - $cnt);
$end = $cnt;
if ($start
$start = 1;
}
}
// ループページ番号を出力します
$pageStr = '';
for ($i=$start; $i
if ($i == $this->curr) {
$pageStr .= $i;
}
$pageStr .= '
'
}
️戻る−东西に戻ります。
}
}
$page = 新しいページ(30,3);
echo $page->showPage();
http://www.bkjia.com/PHPjc/477842.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477842.html技術記事 [php] /* アイデア 1. アドレス バーから URL を取得します。 2. URL のクエリ部分、つまり後でパラメータが渡される部分を分析します。 3. クエリ部分を分析して配列に入れます。 4. ページを追加します。配列内の単位、+1、-1、フォーム 2...