php之分页种代码

Jun 13, 2016 am 11:09 AM
gt page parse this url

php之分页类代码

/*思路1.把地址栏的URL获取2.分析URL中的query部分--就是?后面传参数的部分3.query部分分析成数组4.把数组中的page单元,+1,-1,形成2个新的数组5.再把新数组拼接成query部分,合成上一页,下一页连接地址*///分页类class Page {	public $total;	//全部条数,从数据库取出	public $prePage = 10; //每页的条数	protected $curr= 1;	//默认当前页码	public function __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;		}	}	//主体函数	public function showPage() {		if ($this->total <=0) {			return ''; //如果总条目<=0 直接返回空字符串		}		$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);		//保证参数里边有page		if (!isset($parse['query'])) {			$parse['query'] = 'page=' .$this->curr;		}		//把query字符串分析成数组,再次确保有page选项		parse_str($parse['query'],$parms);		if (!array_key_exists('page', $parms)) {			$parms['page'] = $this->curr;		}		//上边四种情况都测试一遍,page参数都能生成		//print_r($parms);		//判断除了page之外,还有没有其他参数		if (count($parms) == 1) {			$url = $parse['path'] . '?';		} else {			unset($parms['page']);			$url = $parse['path'] . '?' . http_build_query($parms) . '&';		}		//echo $url		$prev = $this->curr - 1;		$next = $this->curr + 1;		//首页		$indexLink = '<a href="' . $url .'page=' . 1 . '">首页</a>';		//上一页		if ($prev < 1) {			$prevLink = '';		}else {			$prevLink = '<a href="' . $url .'page=' . $prev . '">上一页</a>';		}		//下一页		if ($next > $cnt) {			$nextLink = '';		}else {			$nextLink = '<a href="' . $url .'page=' . $next . '">下一页</a>';		}		//尾页		$lastLink = '<a href="' . $url .'page=' . $cnt . '">尾页</a>';		//echo $indexLink.'  '.$prevLink.'  '.$nextLink .'  '.$lastLink;		//上一页,1 2 3 4 5 下一页		$start = $this->curr - (5-1)/2; //计算左侧开始的页码		$end = $this->curr + (5-1)/2;	//计算右侧开始的页码				//如果左侧的页面,已经小于1,则把小于1 的部分补到右侧		if ($start < 1) {			$end += (1 - $start);			$start = 1; //修改start = 1					if ($end > $cnt) {				$end  = $cnt;			}		}		//把右侧超出的部分,补到左边		if ($end > $cnt) {			$start -= ($end - $cnt);			$end = $cnt;			if ($start < 1) {				$start = 1;			}		}				//循环出页码数		$pageStr = '';		for ($i=$start; $i <= $end ; $i++) { 							if ($i == $this->curr) {				$pageStr .= $i;				continue;			}			$pageStr .= '<a href="' . $url . 'page=' . $i . '">' . $i . '</a>';		}		return $indexLink.$prevLink.$pageStr.$nextLink.$lastLink;	}}$page = new Page(30,3);echo $page->showPage();
Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Pengenalan fungsi PHP—get_headers(): Dapatkan maklumat pengepala respons URL Pengenalan fungsi PHP—get_headers(): Dapatkan maklumat pengepala respons URL Jul 25, 2023 am 09:05 AM

Pengenalan fungsi PHP—get_headers(): Gambaran keseluruhan mendapatkan maklumat pengepala respons URL: Dalam pembangunan PHP, kita selalunya perlu mendapatkan maklumat pengepala respons halaman web atau sumber jauh. Fungsi PHP get_headers() boleh dengan mudah mendapatkan maklumat pengepala respons URL sasaran dan mengembalikannya dalam bentuk tatasusunan. Artikel ini akan memperkenalkan penggunaan fungsi get_headers() dan menyediakan beberapa contoh kod yang berkaitan. Penggunaan fungsi get_headers(): get_header

Bagaimana untuk mendapatkan ID Steam anda dalam beberapa langkah? Bagaimana untuk mendapatkan ID Steam anda dalam beberapa langkah? May 08, 2023 pm 11:43 PM

Pada masa kini, ramai pengguna Windows yang suka permainan telah memasuki klien Steam dan boleh mencari, memuat turun dan bermain mana-mana permainan yang bagus. Walau bagaimanapun, kebanyakan profil pengguna mungkin mempunyai nama yang sama, menjadikannya sukar untuk mencari profil atau memautkan profil Steam ke akaun pihak ketiga yang lain atau menyertai forum Steam untuk berkongsi kandungan. Profil tersebut diberikan id 17 digit yang unik, yang kekal sama dan tidak boleh ditukar oleh pengguna pada bila-bila masa, manakala nama pengguna atau URL tersuai boleh. Walau apa pun, sesetengah pengguna tidak mengetahui Steamid mereka, dan penting untuk mengetahui perkara ini. Jangan panik jika anda juga tidak tahu cara mencari Steamid akaun anda. Dalam artikel ini

Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mar 01, 2024 pm 01:20 PM

Sebab ralat adalah NameResolutionError(self.host,self,e)daripada, yang merupakan jenis pengecualian dalam pustaka urllib3 Sebab ralat ini adalah bahawa resolusi DNS gagal, iaitu nama hos atau alamat IP yang telah cuba diselesaikan tidak dapat ditemui. Ini mungkin disebabkan oleh alamat URL yang dimasukkan tidak betul atau pelayan DNS tidak tersedia buat sementara waktu. Bagaimana untuk menyelesaikan ralat ini Mungkin terdapat beberapa cara untuk menyelesaikan ralat ini: Semak sama ada alamat URL yang dimasukkan adalah betul dan pastikan ia boleh diakses Pastikan pelayan DNS tersedia, anda boleh cuba menggunakan arahan "ping" dalam baris arahan untuk menguji sama ada pelayan DNS tersedia Cuba akses tapak web menggunakan alamat IP dan bukannya nama hos jika di belakang proksi

Cara menggunakan pengekodan dan penyahkodan URL dalam Java Cara menggunakan pengekodan dan penyahkodan URL dalam Java May 08, 2023 pm 05:46 PM

Gunakan url untuk mengekod dan menyahkod kelas java.net.URLDecoder.decode(url, format penyahkodan) kaedah penyahkod.penyahkod untuk pengekodan dan penyahkodan. Tukar kepada rentetan biasa, URLEncoder.decode(url, format pengekodan) menukar rentetan biasa menjadi rentetan dalam format yang ditentukan packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. URLEncoder

Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Betulkan: Alat snipping tidak berfungsi dalam Windows 11 Aug 24, 2023 am 09:48 AM

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Apakah perbezaan antara html dan url Apakah perbezaan antara html dan url Mar 06, 2024 pm 03:06 PM

Perbezaan: 1. Definisi yang berbeza, url ialah pencari sumber seragam, dan html ialah bahasa penanda hiperteks 2. Terdapat banyak url dalam html, tetapi hanya satu halaman html boleh wujud dalam url 3. html merujuk kepada; halaman web, dan url merujuk kepada alamat tapak web.

Petua pengoptimuman buruk: Cara mengurangkan rangkak URL pendua dan meningkatkan kecekapan Petua pengoptimuman buruk: Cara mengurangkan rangkak URL pendua dan meningkatkan kecekapan Jun 22, 2023 pm 01:57 PM

Scrapy ialah rangka kerja perangkak Python yang berkuasa yang boleh digunakan untuk mendapatkan sejumlah besar data daripada Internet. Walau bagaimanapun, apabila membangunkan Scrapy, kami sering menghadapi masalah merangkak URL pendua, yang membuang banyak masa dan sumber serta menjejaskan kecekapan. Artikel ini akan memperkenalkan beberapa teknik pengoptimuman Scrapy untuk mengurangkan rangkak URL pendua dan meningkatkan kecekapan perangkak Scrapy. 1. Gunakan atribut start_urls dan allowed_domains dalam perangkak Scrapy untuk

See all articles