⊗ppPmSDFl 437 of 447 menu

File-Based Engine in PHP

เราจะนำเอ็นจิ้นของเว็บไซต์มาใช้งาน ซึ่งจะช่วยให้ เราสามารถสร้างไฟล์เทมเพลตขึ้นมาได้ โดยเนื้อหาต่างๆ จะถูกเชื่อมต่อเข้ากับเทมเพลตนั้นตาม URL ที่เรียก

ให้โครงสร้างหน้าของเรามีลักษณะดังต่อไปนี้:

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

ในตำแหน่งที่ควรจะแทรกเนื้อหา ลองแทรกคำสั่งที่เราคิดขึ้นมา สำหรับการแทรก ตัวอย่างเช่นคำสั่งนี้: {{ content }} มาดัดแปลงเทมเพลตของเว็บไซต์ของเรา:

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

คราวนี้มาสร้างโฟลเดอร์ view ซึ่ง เราจะใช้สำหรับวางไฟล์เนื้อหา โดยจะวางในโฟลเดอร์นี้ หรือในโฟลเดอร์ย่อยก็ได้

ไฟล์แรกจะมีลักษณะดังนี้:

<div> content 1 </div>

ไฟล์ที่สองจะมีลักษณะดังนี้:

<div> content 2 </div>

ไฟล์ที่สามจะมีลักษณะดังนี้:

<div> content 3 </div>

คราวนี้เรามาทำให้ไฟล์ที่เกี่ยวข้องถูกดึงขึ้นมาตาม URL ที่กรอกในแถบที่อยู่ ในกรณีของเรา URL /page1 จะดึงไฟล์แรก, URL /dir/page2 จะดึงไฟล์ที่สอง, และ URL /dir/sub/page3 จะดึงไฟล์ที่สาม

มาเริ่มต้นการนำไปใช้กันดีกว่า เริ่มจากในไฟล์ .htaccess เราจะทำให้ทุกที่อยู่ที่ถูกเรียก ยกเว้นไฟล์ทรัพยากร ถูกเปลี่ยนเส้นทาง ไปที่หน้า index.php:

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

บนหน้า index.php เราจะได้รับ URL ที่ร้องขอ เก็บไว้ในตัวแปร:

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

จากนั้นเราจะดึงข้อความจากไฟล์เทมเพลต:

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

คราวนี้เราจะดึงไฟล์เนื้อหาที่เกี่ยวข้องจากโฟลเดอร์ view ตาม URL:

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

แทนที่คำสั่งที่เราคิดขึ้นในข้อความเทมเพลต ด้วยเนื้อหาที่ได้จากไฟล์:

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

แสดงไฟล์เทมเพลตพร้อมเนื้อหาที่แทรกแล้ว ไปยังเบราว์เซอร์:

<?php echo $layout; ?>

รวบรวมทุกส่วนเข้าด้วยกันแล้วเราจะได้โค้ดดังต่อไปนี้:

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

ให้คุณนำ File-Based Engine ตามที่อธิบายไปใช้งาน

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