⊗ppPmSDFl 437 of 447 menu

Engine trên file trong PHP

Chúng ta sẽ triển khai một engine cho website, cho phép chúng ta tạo một file template, vào đó, tùy thuộc vào URL, nội dung khác nhau sẽ được kết nối.

Giả sử cấu trúc trang của chúng ta trông như sau:

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

Hãy đặt tại vị trí cần chèn nội dung một lệnh do chúng ta tự nghĩ ra để chèn, ví dụ như sau: {{ content }}. Hãy thay đổi template của website chúng ta:

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

Bây giờ hãy tạo thư mục view, vào đó chúng ta sẽ đặt các file nội dung. Ngay trong thư mục này hoặc trong các thư mục con.

File đầu tiên sẽ như sau:

<div> content 1 </div>

File thứ hai sẽ như sau:

<div> content 2 </div>

File thứ ba sẽ như sau:

<div> content 3 </div>

Bây giờ hãy làm sao để theo URL từ thanh địa chỉ, file tương ứng sẽ được lấy về. Trong trường hợp của chúng ta, theo URL /page1 sẽ là file đầu tiên, theo URL /dir/page2 - file thứ hai, và theo URL /dir/sub/page3 - file thứ ba.

Hãy bắt đầu triển khai. Đầu tiên, trong file .htaccess, hãy làm sao để tất cả các địa chỉ được yêu cầu, ngoại trừ các file tài nguyên, được chuyển hướng về trang index.php:

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

Trên trang index.php, hãy lấy URL được yêu cầu vào một biến:

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

Sau đó, lấy nội dung văn bản của file template:

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

Bây giờ, dựa vào URL, hãy lấy file nội dung tương ứng từ thư mục view:

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

Hãy thay thế lệnh do chúng ta tự nghĩ ra trong văn bản template bằng nội dung lấy được từ file:

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

Hãy xuất ra trình duyệt file template với nội dung đã được thay thế:

<?php echo $layout; ?>

Tổng hợp tất cả lại, chúng ta có đoạn mã sau:

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

Hãy triển khai engine trên file như đã mô tả.

Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối