⊗ppPmSDRt 444 of 447 menu

PHP-də sadə marşrutlaşdırma

Əvvəlki dərsdə saytımızda yalnız bir ünvan qrupu var idi. Əlbəttə, adətən saytda bir neçə ünvan növü olur.

Hər bir ünvan qrupu öz marşrutu adlanan müntəzəm ifadəsi ilə işlənəcək. Müvafiq olaraq marşrutları və onların emalı üçün kodları uğurla əlaqələndirmə prosesi marşrutlaşdırma adlanır.

Fərz edək ki, məsələn, iki növ ünvanımız var. Gəlin hər bir qrup üçün öz marşrutunu yazaq:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // sluq-a görə bir səhifə } if (preg_match('#^/page/all$#', $url, $params)) { // bütün səhifələrin siyahısı } ?>

Rahatlıq üçün hər bir marşrutun emal kodunu ayrı bir fayla çıxaraq:

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

Qoşulan fayllar nəticə olaraq səhifənin başlığı və məzmunu olan massiv qaytarmalıdır.

Gəlin onun sluquna görə bir səhifə çıxaran ilk faylın kodunu yazaq:

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

İndi isə bütün səhifələrə keçid siyahısını çıxaran ikinci faylın kodunu yazaq:

<?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' => 'bütün səhifələr', 'content' => $content ]; return $page; ?>

Şərtlərdən birinin yerinə yetirilməsindən sonra dəyişəndə $page həmişə bir strukturdan olan massiv olacaq. Saytın şablonuna başlıq və məzmunu yerləşdirmək üçün bu massivdən istifadə edək:

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

Gəlin hamısını birlikdə yığaq və aşağıdakı kodu alaq:

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

Tutaq ki, sizin istifadəçiləri olan bir saytınız var. Bir istifadəçini göstərmək üçün səhifə, bütün istifadəçiləri çıxaran səhifə və yeni istifadəçi əlavə etmək üçün forma olan səhifə hazırlayın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et