Html dilini artık webmaster olma yolunda ilerleyen çoğu arkadaşımızın sular seller gibi bildiği aşikar. Html diliyle tek başına dinamik bir site oluşturamayacağımız için ve statik bir site de yapmak istemediğimiz için, diğer dilleri de bilmemiz gerekiyor. Php en popüler ve en anlaşılır olanı sanırım 🙂 Yine de Php’de de içinden çıkamadığımız durumlar oluyor. Bu sorunlardan en sıkça karşılaşılanı Php ile Html’i bir arada kullanamama, bazen Html’i Php içinde, bazen de Php’yi Html içinde kullanmamız gerekiyor. Hatta bazen bu iş o kadar karmaşık bir hal alıyor ki; Php içinde Html ve Html içinde tekrar Php gibi bir durum söz konusu oluyor.

Bu iki farklı dil birbirleriyle harmanlanırken, olduğu gibi birbirlerine geçiştiremiyoruz. Html dilinde kullandığımız tek tırnaklar, çift tırnak işaretleri sorun teşkil ediyor. Bunun için de kolaylık olsun diye ve hatalar en aza indirgensin diye kolaylık sunulmuş, bu derste o kolaylıklara örneklemeler ile tek değineceğiz.

<html>
<head></head>
<body>
<ul> 
<?php for($i=1;$i<=5;$i++){ ?>
<li>Örnek <?php echo $i; ?></li> 
<?php } ?>
</ul> 
</body>
</html>

Evet gördüğünüz gibi 5 defa for döngüsü içinde örnek adlı li nesnesini PHP ile tekrarlattık.

İleride belki karşınıza çıkar küçük bir ipucu HTML içinde PHP kodlarını yazımı kolay olduğu için genelde

<? Buraya kod ?>

bu şekilde yazarız…

Ve küçük bir ayrıntı eğer PHP kodu ile require veya include kodlarını kullanacaksak genelde sayfanın en üstünde veya head tagları arasında kullanırız ama kullandığımız yerin bir önemi yok.

PHP dosyasında HTML kullanırken eğer hiçbir PHP açılış etiketi yazmamış isek direk kullanabiliriz .html veya .htm dosyası gibi HTML kodlarımızı yazabiliyoruz.

Ama PHP kodları içinde HTML kodu yazmak için echo veya print fonksiyonlarını kullanabilirsiniz.

<?php
echo "<html>";
echo "<head></head>";
echo "<body>";
echo "<p class=\"deneme\">Örnek HTML etiketi</p>"
return $parametre; // Örnek PHP kodu
echo "</body>";
echo "</html>";
?>

Burada gördüğünüz gibi echo ve print le HTML kodlarının arasına PHP kodu da yazabiliyoruz ama farkettiyseniz \ şeklinde bir ifade kullandım. Eğer biz ifadenin string olduğunu belirtmek için ” veya ‘ arasına alıyorsak o zaman eğer ifade de ” veya ‘ var ise PHP string i diğer ” veya ‘ ni özel bir ifade olarak algılacak ve işaretlerin olduğu yerde bitti kabul edecektir işte bu durumdan kaçmak için escape işaretini (\) kullanıyoruz.

Eğer bol tırnak içeren bir html kodu php’de echo kullanarak yazacaksak;

<?php echo '<a href="#">test</a>'; ?>

şeklinde tek tırnak içinde yazmakta bir çözüm olabilir.

Ama bu durum geliştiriciye çok karışık ve zahmetli geleceği için bir yol daha vardır bu da PHP kodlarının arasında HTML kodlarını

<<<ORNEK
   // Buraya kodlar
ORNEK;

sözdiziminde yazmaktır burada ORNEK ifadesi değişebilir ama genelde HTML veya EOF kullanılır…

Biraz üstte vermiş olduğum örnek html kodlarının her bir satırı için echo kullanıldı bu mecburi değil dilerseniz bu şekilde de kullanabilirsiniz.

<?php
echo '<html>
<head></head>
<body>
<p class="deneme">Örnek HTML etiketi</p>'.$parametre.'
</body>
</html>';
?>

Yukarıda ki örnekte kaçış karakteri olan /(slash) kullanmadık ve tek tırnak arasında echo yaptık.  $parametre adlı değişkeni ise birleştirme operatörü olan .(nokta) ile dahil ettik. Return kullanmamış olduk.

Bir başka yazım örneği;

Bu HTML kodlarının arasında da PHP kodu kullanabiliriz küçük bir örnekle daha iyi kavrayalım:

<?php
$degisken1 = "Örnek değişken";

echo <<<EOF
<html>
<body>
<p class="deneme">$degisken1</p>
</body>
</html>
EOF;
?>