⊗ppPmSDRt 444 of 447 menu

PHP қозғалтқышындағы қарапайым маршрутизация

Біздің сайттағы алдыңғы сабақта тек бір URL тобы болды. Әрине, әдетте сайтта бірнеше түрлі адрестер болады.

Әрбір адрес тобы өз реттік өрнектерімен өңдіріледі, олар роуттар деп аталады. Тиісінше, роуттарды және оларды өңдеу кодын сәйкестендіру процесі роутинг деп аталады.

Мысалы, бізде екі түрлі адрес бар делік. Әр топ үшін өз роутын жазайық:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // бір бет слағ бойынша } if (preg_match('#^/page/all$#', $url, $params)) { // барлық беттер тізімі } ?>

Ыңғайлылық үшін әрбір роутты өңдеу кодын бөлек файлға шығарайық:

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

Қосылатын файлдар нәтиже ретінде беттің тақырыбы мен мазмұны бар массив қайтаруы керек.

Оның слағы бойынша бір бетті шығаратын бірінші файлдың кодын жазайық:

<?php $slug = $params[1]; $query = "SELECT * FROM pages WHERE slug='$slug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); return $page; ?>

Енді барлық беттерге сілтемелер тізімін шығаратын екінші файлдың кодын жазайық:

<?php $query = "SELECT slug, title FROM pages"; $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/' . $page['slug'] . '">' . $page['title'] . '</a> </div> '; } $page = [ 'title' => 'all pages', 'content' => $content ]; return $page; ?>

Шарттардың бірі орындалғаннан кейін $page айнымалысында әрқашан бір құрылымнан тұратын массив болады. Сайт үлгісіне тақырып пен мазмұнды қою үшін бұл массиві қолданайық:

<?php $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Барлығын жинап, келесі кодты аламыз:

<?php $url = $_SERVER['REQUEST_URI']; if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { $page = include 'view/page/show.php'; } if (preg_match('#^/page/all$#', $url, $params)) { $page = include 'view/page/all.php'; } $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Сізде пайдаланушылар бар сайт бар делік. Бір пайдаланушыны көрсету бетін, барлық пайдаланушылар тізімін шығару бетін және жаңа пайдаланушы қосу формасы бар бетті жасаңыз.

Қазақ
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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау