⊗ppPmSDFl 437 of 447 menu

PHP'de Dosya Tabanlı Motor

Bize, URL'ye bağlı olarak farklı içeriğin bağlanacağı bir şablon dosyası oluşturmamızı sağlayacak bir site motoru uygulayacağız.

Sayfamızın yapısının aşağıdaki gibi göründüğünü varsayalım:

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

İçeriğin eklenmesi gereken yere, kendimizin uydurduğu bir ekleme komutu yerleştirelim, örneğin şöyle: {{ content }}. Sitemizin şablonunu değiştirelim:

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

Şimdi içerik dosyalarını yerleştireceğimiz view klasörünü oluşturalım. Doğrudan bu klasörde veya alt klasörlerde.

İlk dosya şöyle olacak:

<div> content 1 </div>

İkinci dosya şöyle olacak:

<div> content 2 </div>

Üçüncü dosya şöyle olacak:

<div> content 3 </div>

Şimdi, adres çubuğundaki URL'ye göre ilgili dosyanın çekilmesini sağlayalım. Bizim durumumuzda /page1 URL'si için birinci dosya, /dir/page2 URL'si için ikinci dosya ve /dir/sub/page3 URL'si için üçüncü dosya olacak.

Uygulamaya başlayalım. İlk olarak, .htaccess dosyasında, kaynak dosyalar hariç tüm istenen adreslerin index.php sayfasına yönlendirilmesini sağlayalım:

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

index.php sayfasında, bir değişkene istenen URL'yi alalım:

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

Daha sonra şablon dosyasının metnini alalım:

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

Şimdi URL'ye göre view klasöründen ilgili içerik dosyasını alalım:

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

Şablon metninde uydurduğumuz komutu, dosyadan alınan içerikle değiştirelim:

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

Şablonu yerleştirilmiş şablon dosyasını tarayıcıda gösterelim:

<?php echo $layout; ?>

Hepsini bir araya getirelim ve aşağıdaki kodu elde edelim:

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

Açıklanan dosya tabanlı motoru uygulayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet