Html Uzantılı Dosyasında Php Kodu Çalıştırma
Merhaba arkadaşlar.
Html uzantılı dosyada bildiğim kadarıyla php kodu çalıştırılamıyor.
Ama gördüğüm ingilizce bir eğitim setinde html dosyasına php kodu yazıyorlar.
Bu nasıl yapılıyor?
(İstenirse eğitimde yazılan kodları paylaşırım)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
/lib/view.class.php dosyasındaki render()
fonksiyonu:
public function render(){
$data = $this->data;
ob_start();
include($this->path);
$content = ob_get_clean();
return $content;
}
ob_start();
ile tamponlama işlemlerinin başlayacağı belirtiliyor.include($this->path);
ile ilgili view dosyasının içeriği buraya yazılıyor. Yani aslında html dosyası olsa da, dosyada yazan veriler bu php dosyasına alınmış oluyor. Bu php dosyası, içindeki php komutlarını işleyebilir.$content = ob_get_clean();
ile tamponlama işlemi sonlanıyor ve işlenmiş içerik$content
değişkenine aktarılıyor.return $content;
ile bu fonksiyon, içeriğin işlenmiş halini (yani php kodlarının işlenip html içine yazılmış, yani php kodları barındırmayan halini) döndürüyor.
Yani regex ile arayıp bulup işlem yapmasına gerek kalmadan ob_get_clean()
ile php kodunu işlemiş.
ebykdrms evet dediğiniz gibi bir mvc yapısı kuruluyor.
İlerleyen derslere baktığımda ingilizce olduğu için anlayamadım. Türkçe altyazıya da çevrilmiyor.
İndirdiğim kaynak dosyalarında dosyaların uzantısı değiştirilmemiş, halen html olarak duruyor.
İnceleyip bana mantığını anlatabilir misiniz? Html dosyaları views klasörlerinde bulunuyor.
Normalde çalışmaz. Sonradan html uzantısını değiştirip php'ye çeviriyorlardır. Videonun ilerleyen zamanlarında hatayı fark edip düzeltirler.
Veya "Bakın html sayfasına PHP kodu yazdım ama çalışmadı. Çünkü html sayfada php kodu çalışmaz." demek için yazdıkları bir an da olabilir bu.
Yok eğer bile isteye bu şekilde yazıyorlarsa bambaşka bir mantık kurmuşlardır.
Diğer açık sekmelerden anladığım kadarıyla burada bir framework geliştiriliyor.
Bu framework'ün çalışma mantığında bu kullanımın bir anlamı olabilir ama bunu bilemeyiz.
Örneğin bir php sayfası, bu default.html sayfasını okuyordur ve regex ile içinde php'ye ait bir kısım varsa bunu replace ediyordur.
Yani aslında php kodunu yine bir php sayfası çalıştırıyordur. Bu html, yalnızca başka bir php sayfasından okunmak ve değiştirilmek üzere yazılıyordur.
Burada ne yapılmak istendiği eğitim programında anlatılıyor olsa gerek.