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-ով
բերվի համապատասխան ֆայլը։ Մեր դեպքում /page1
url-ով կլինի առաջին ֆայլը, /dir/page2
url-ով՝ երկրորդը, և /dir/sub/page3
url-ով՝ երրորդը։
Սկսենք իրականացնել։ Սկզբից .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;
?>
Իրականացրեք նկարագրված ֆայլային շարժիչը։