⊗ppPmSDRSP 446 of 447 menu

Beberapa Parameter di Rute Mesin dalam PHP

Sekarang anggap di situs kita ada kategori dan halaman yang termasuk dalam kategori ini. Mari buat tabel untuk kategori:

categories
id slug name
1 first-category name1
2 second-category name2

Dan tabel untuk halaman:

pages
id slug title content category_id
1 my-first-page title1 <div> content1 </div> 1
2 my-second-page title2 <div> content2 </div> 1
3 my-third-page title3 <div> content3 </div> 2

Di situs kita, kita mengizinkan slug halaman dari kategori yang berbeda untuk sama. Ini berarti bahwa di URL kita harus menentukan pertama slug kategori, lalu slug halaman sesuai dengan skema ini: /page/:category/:page, di mana melalui titik dua ditunjukkan tempat-tempat di mana akan ada parameter yang berubah.

Mari tulis rute untuk situs kita:

<?php $route = '^/page/(?<catSlug>[a-z0-9_-]+)/(?<pageSlug>[a-z0-9_-]+) ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/show.php'; } $route = '^/page/(?<catSlug>[a-z0-9_-]+) ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/category.php'; } $route = '^/ ; if (preg_match("#$route#", $url, $params)) { $page = include 'view/page/all.php'; } ?>

Di handler rute pertama, kita akan menampilkan halaman yang diminta:

<?php $catSlug = $params['catSlug']; $pageSlug = $params['pageSlug']; $query = "SELECT pages.title, pages.content FROM pages LEFT JOIN category ON category.id=pages.category_id WHERE pages.slug='$pageSlug' AND category.slug='$catSlug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); return $page; ?>

Di handler rute kedua, kita akan menampilkan daftar halaman dari kategori yang ditentukan:

<?php $catSlug = $params['catSlug']; $query = "SELECT pages.slug, pages.title FROM pages LEFT JOIN category ON category.id=pages.category_id WHERE category.slug='$catSlug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); for ($data = []; $row = mysqli_fetch_assoc($res); $data[] = $row); $content = ''; foreach ($data as $page) { $content .= ' <div> <a href="/page/' . $catSlug . '/' . $page['slug'] . '">' . $page['title'] . '</a> </div> '; } $page = [ 'title' => 'daftar semua halaman kategori ' . $catSlug, 'content' => $content ]; return $page; ?>

Anggap Anda memiliki situs dengan kota dan negara. Anggap di alamat / ditampilkan daftar semua negara, di alamat /:country ditampilkan daftar kota dari negara yang ditentukan dalam parameter, dan di alamat /:country/:city deskripsi kota yang ditentukan.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak