⊗ppPmSDFl 437 of 447 menu

Enjin Berasaskan Fail dalam PHP

Kami akan melaksanakan enjin laman web yang akan membolehkan kami membuat fail templat, di mana kandungan berbeza akan disambungkan kepadanya bergantung pada URL.

Andaikan struktur halaman kami kelihatan seperti berikut:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> content </main> <header> footer </header> </body> </html>

Mari kita di tempat di mana kandungan harus dimasukkan masukkan arahan yang kami cipta untuk sisipan, contohnya seperti ini: {{ content }}. Mari ubah templat laman web kami:

<!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <header> header </header> <main> {{ content }} </main> <header> footer </header> </body> </html>

Sekarang mari buat folder view, di mana kami akan meletakkan fail kandungan. Sama ada terus dalam folder ini atau dalam subfolder.

Fail pertama akan seperti ini:

<div> content 1 </div>

Fail kedua akan seperti ini:

<div> content 2 </div>

Fail ketiga akan seperti ini:

<div> content 3 </div>

Sekarang mari kita buat supaya mengikut URL dari bar alamat, fail yang sepadan akan diambil. Dalam kes kami, untuk url /page1 akan dapat fail pertama, untuk url /dir/page2 - yang kedua, dan untuk url /dir/sub/page3 - yang ketiga.

Mari kita mulakan pelaksanaan. Mula-mula dalam fail .htaccess, mari kita buat supaya semua alamat yang diminta, kecuali fail sumber, diarahkan semula ke halaman index.php:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$ RewriteRule .+ index.php

Pada halaman index.php, kami akan dapatkan URL yang diminta ke dalam pembolehubah:

<?php $url = $_SERVER['REQUEST_URI']; ?>

Kemudian dapatkan teks fail dengan templat:

<?php $layout = file_get_contents('layout.php'); ?>

Sekarang mengikut URL, dapatkan dari folder view fail kandungan yang sepadan:

<?php $content = file_get_contents('view' . $url . '.php'); ?>

Gantikan dalam teks templat arahan yang kami cipta dengan kandungan yang diperoleh dari fail:

<?php $layout = str_replace('{{ content }}', $content, $layout); ?>

Tunjukkan dalam pelayar fail templat dengan templat yang digantikan:

<?php echo $layout; ?>

Mari kumpulkan semuanya dan dapatkan kod berikut:

<?php $url = $_SERVER['REQUEST_URI']; $layout = file_get_contents('layout.php'); $content = file_get_contents('view' . $url . '.php'); $layout = str_replace('{{ content }}', $content, $layout); echo $layout; ?>

Laksanakan enjin berasaskan fail yang diterangkan.

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