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');
?>
अब URL के आधार पर view फोल्डर से
संबंधित कंटेंट फाइल प्राप्त करेंगे:
<?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;
?>
फाइलों पर आधारित वर्णित इंजन को लागू करें।