⊗ppPmSDRt 444 of 447 menu

การกำหนดเส้นทางอย่างง่ายในเอ็นจิ้น PHP

ในบทเรียนที่ผ่านมา บนเว็บไซต์ของเรามีเพียง กลุ่ม URL กลุ่มเดียว แน่นอนว่าปกติแล้วบน เว็บไซต์มักมีหลายประเภทของที่อยู่

กลุ่มที่อยู่แต่ละกลุ่มจะถูกประมวลผลโดย นิพจน์ปกติของตัวเอง ซึ่งเรียกว่า เส้นทาง (routes) ดังนั้น กระบวนการจับคู่เส้นทางกับโค้ดสำหรับ การประมวลผลพวกมัน เรียกว่า การกำหนดเส้นทาง (routing)

สมมติว่า เช่น เรามีที่อยู่สองประเภท เรามาเขียนเส้นทางของตัวเองสำหรับแต่ละกลุ่มกัน:

<?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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ