⊗ppPmSDRt 444 of 447 menu

Penghalaan Mudah dalam Enjin PHP

Dalam pelajaran sebelumnya, laman web kami hanya mempunyai satu kumpulan URL. Sudah tentu, biasanya laman web mempunyai beberapa jenis alamat.

Setiap kumpulan alamat akan diproses dengan ungkapan biasa sendiri, yang dipanggil rout. Oleh itu, proses memadankan rout dan kod untuk memprosesnya dipanggil penghalaan.

Katakan, sebagai contoh, kami mempunyai dua jenis alamat. Mari tulis rout untuk setiap kumpulan:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // satu halaman mengikut slug } if (preg_match('#^/page/all$#', $url, $params)) { // senarai semua halaman } ?>

Untuk kemudahan, mari asingkan kod pemprosesan setiap rout ke dalam fail berasingan:

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

Fail yang disertakan mestilah mengembalikan array dengan tajuk dan kandungan halaman sebagai hasilnya.

Mari tulis kod fail pertama, yang memaparkan satu halaman mengikut slugnya:

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

Dan sekarang mari tulis kod fail kedua, yang memaparkan senarai pautan ke semua halaman:

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

Selepas melaksanakan salah satu syarat, dalam pembolehubah $page akan sentiasa ada array daripada satu struktur. Mari gunakan array ini untuk menggantikan tajuk dan kandungan ke dalam templat laman web:

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

Mari kumpulkan semuanya dan dapatkan kod berikut:

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

Katakan anda mempunyai laman web dengan pengguna. Buat halaman untuk memaparkan satu pengguna, halaman untuk memaparkan semua pengguna dan halaman dengan borang untuk menambah pengguna baru.

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