⊗ppPmSDRSP 446 of 447 menu

Бисёр параметрҳо дар роутҳои движак дар PHP

Бигзор ҳоло дар сомонаи мо категорияҳо ва саҳифаҳое, ки ба ин категорияҳо тааллуқ доранд, мавҷуданд. Биёед ҷадвалро бо категорияҳо созем:

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

Ва ҷадвалро бо саҳифаҳо:

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

Дар сомонаи мо мо иҷозат медиҳем, ки slug-ҳои саҳифаҳо аз категорияҳои гуногун мувофиқат кунанд. Ин маънои онро дорад, ки дар URL мо бояд аввал slug-и категорияро, сипас slug-и саҳифаро инҷо аз рӯи ин схема нишон диҳем: /page/:category/:page, ки дар он ҷо байни ду нуқта ҷойҳое нишон дода шудаанд, ки дар онҳо параметрҳои тағйирёбанда хоҳанд буд.

Биёед роутҳоро барои сомонаи мо нависем:

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

Дар обработкунанандаи роути аввал нишон медиҳем саҳифаи дархостшуда:

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

Дар обработкунанандаи роути дуюм нишон медиҳем рӯйхати саҳифаҳо аз категорияи нишондодашуда:

<?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' => 'рӯйхати ҳамаи саҳифаҳои категорияи ' . $catSlug, 'content' => $content ]; return $page; ?>

Бигзор шумо сомонае бо шаҳрҳо ва кишварҳо доред. Бигзор дар суроғаи / рӯйхати ҳамаи кишварҳо чоп шавад, дар суроғаи /:country рӯйхати шаҳрҳои кишвари нишондодашуда дар параметр чоп шавад, ва дар суроғаи /:country/:city тавсифи шаҳри нишондодашуда чоп шавад.

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