⊗ppPmSDRSP 446 of 447 menu

Beberapa Parameter dalam Rute Enjin di PHP

Sekarang katakan laman web kami mempunyai kategori dan halaman yang tergolong dalam kategori ini. Mari kita buat jadual untuk kategori:

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

Dan jadual 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 laman web kami, kami membenarkan slug halaman dari kategori yang berbeza untuk bertepatan. Ini bermakna dalam URL kami perlu nyatakan terlebih dahulu slug kategori, kemudian slug halaman mengikut skema ini: /page/:category/:page, di mana tanda titik dua menunjukkan tempat parameter yang akan berubah.

Mari kita tulis rute untuk laman web kami:

<?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'; } ?>

Dalam pengendali rute pertama, kami akan menunjukkan 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; ?>

Dalam pengendali rute kedua, kami akan menunjukkan senarai halaman dari kategori yang dinyatakan:

<?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' => 'senarai semua halaman kategori ' . $catSlug, 'content' => $content ]; return $page; ?>

Katakan anda mempunyai laman web dengan bandar dan negara. Katakan di alamat / dipaparkan senarai semua negara, di alamat /:country dipaparkan senarai bandar bagi negara yang dinyatakan dalam parameter, dan di alamat /:country/:city keterangan bandar yang dinyatakan.

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