İşe yarar bir şey
Bu kez kod daha işe yarar bir şey yapsın. Ziyaretçinin hangi tarayıcıyı
kullandığı tespit edilebilir. Bunun için, ziyaretçinin tarayıcısı
tarafından HTTP isteği ile birlikte gönderilen kullanıcı aracısı
dizgesine bakılır. Bu bilgi bir
değişkende saklanır. Değişkenler
PHP'de her zaman dolar imi ile başlar. Şu an için ilgilenilen değişken
$_SERVER['HTTP_USER_AGENT']'tir.
Bilginize:
$_SERVER PHP kullanımına ayrılmış özel bir değişken
olup HTTP sunucusunun tüm bilgilerini içerir. Bu tür değişkenlere süper
küreseller denir. Bu konuda daha ayrıntılı bilgi Süper Küreseller
bölümünde bulunabilir.
Bu değişkenin değerinin görüntülenmesi için yapılacaklar:
Örnek 1 - Bir değişkeni (dizi öğesini) yazdırmak
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
Bu betiğin çıktısı şöyle bir dizge olabilirdi:
Mozilla/5.0 (Linux) Firefox/112.0
PHP'de birçok farklı değişken türü
mevcuttur. Yukardaki örnekte bir
diziye ait bir öğe yazdırıldı.
Diziler çok daha kullanışlı olabilir.
$_SERVER PHP tarafından kullanıma otomatik
olarak sunulan bir değişkendir. Kullanım kılavuzunun
Öntanımlı Değişkenler
bölümünden tümünün listesine ulaşılabilir ya da önceki örnekte
kullanılan phpinfo() işlevi ile üretilen çıktıya
bakarak bütün listeye ulaşılabilir.
PHP etiketinin içine birden çok PHP komutu konabilir ve tek bir echo
komutundan daha fazlasını yapan küçük kodlar oluşturulabilir.
Örneğin, ziyaretçin Firefox kullanıp kullanmadığı şöyle saptanabilir:
Örnek 2 - Denetim yapılarının
ve işlevlerin kullanım
örneği
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Firefox kullanıldığı saptandı';
}
?>
Bu betiğin çıktısı şöyle olabilirdi:
Firefox kullanıldığı saptandı.
Burada birkaç yeni kavram devreye sokuldu. Örneğin, if deyimi; C dilinde
kullanılan temel sözdizimine aşinalık varsa, bu kullanım tanıdık
gelecektir. Aksi takdirde, giriş düzeyinde bir PHP kitabı edinilmesi ve ilk
birkaç bölümünün okunması ya da kılavuzun Dil
Başvuru Kılavuzu bölümünün okunması faydalı olacaktır.
Devreye sokulan ikinci kavram, str_contains() işlevi ile
yapılan çağrı oldu. str_contains(), bir dizgeyi başka bir
dizgenin içinde arayan yerleşik bir PHP işlevidir. Burada
$_SERVER['HTTP_USER_AGENT'] içinde (samanlık)
'Firefox'
dizgesi (iğne) aranıyor. İğne samanlıkta
bulunursa true
, aksi takdirde false
döner.
if ifadesinin sonucu
true
olduğu takdirde kaşlı ayraçlar arasındaki kod
çalıştırılır. Aksi takdirde kod çalıştırılmaz. If, else gibi denetim yapıları ile
strtoupper() ve strlen() gibi
işlevler kullanılarak benzer örnekler yazılabilir. İlgili her
kılavuz sayfası aynı zamanda örnekler de içermektedir. Bu işlevlerin nasıl
kullanması gerektiğinden emin olunamıyorsa, kılavuzdaki bir işlev tanımı nasıl okunur ve PHP işlevleri bölümleri
okunabilir.
Bu bir adım öteye taşınabilir ve bir PHP kodunun tam ortasındayken
bile HTML kipine nasıl girilip çıkılabileceği gösterilebilir:
Örnek 3 - HTML ve PHP kiplerini karıştırmak
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() false döndürmemiş olmalı</h3>
<p>Firefox kullanıldığı saptandı.</p>
<?php
} else {
?>
<h3>str_contains() false döndürmüş olmalı</h3>
<p>Firefox kullanılmadığı saptandı.</p>
<?php
}
?>
Bu betikten elde edilebilecek sonuçlardan biri:
<h3>str_contains() false döndürmemiş olmalı</h3>
<p>Firefox kullanıldığı saptandı.</p>
Bir çıktı üretmek için PHP echo komutunu kullanmak yerine, PHP kipinden
çıkıldı ve düz HTML gönderildi. Burada dikkat edilmesi gereken önemli
nokta, betiğin mantıksal akışının değişmiyor olmasıdır.
str_contains() işlevinden edinilen sonuca göre HTML kod
çiftlerinden yalnızca biri görüntüleyiciye gönderilmektedir. Başka bir
deyişle, bu işleyiş Firefox
dizgesinin bulunup
bulunmamasına bağlıdır.