İşe yarar bir şey
Şimdi daha işe yarar bir şey yapalım. Ziyaretçilerinizin hangi tarayıcıyı
kullandığını tespit edelim. Bunun için, ziyaretçinizin tarayıcısı
tarafından HTTP isteği ile birlikte gönderilen kullanıcı aracısı
dizgesine bakacağız. Bu bilgi bir değişkende saklanır. Değişkenler PHP'de her zaman dolar
işareti ile başlar. Bizim şu an için ilgilendiğimiz 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ı bilgiyi Süper küreseller
bölümünde bulabilirsiniz.
Bu değişkenin değerini görüntülemek için yapmanız gereken:
Ö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/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
PHP'de birçok farklı değişken türü mevcuttur. Yukardaki örnekte bir diziye ait bir öğeyi yazdırdık.
Diziler çok kullanışlı olabilirler.
$_SERVER PHP tarafından kullanımınıza 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şabilirsiniz ya da önceki örnekte
kullandığımız phpinfo() işlevi ile üretilen çıktıya
bakarak bütün listeye ulaşabilirsiniz.
PHP etiketinin içine birden çok PHP komutu koyabilir ve tek bir echo
komutundan daha fazlasını yapan küçük kod blokları oluşturabilirsiniz.
Örneğin, ziyaretçinizin Internet Explorer kullanıp kullanmadığını şöyle
öğrenebilirsiniz:
Örnek 2 - Denetim yapılarının
ve işlevlerin kullanım
örneği
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Internet Explorer kullanmaktasınız.<br />';
}
?>
Bu betiğin çıktısı şöyle olabilirdi:
Internet Explorer kullanmaktasınız.<br />
Burada birkaç yeni kavramı devreye soktuk. Bir if deyimimiz var. Eğer C dilinde
kullanılan temel sözdizimine aşinalığınız varsa, bu kullanım size tanıdık
gelecektir. Aksi takdirde, giriş düzeyinde bir PHP kitabı almanız ve ilk
birkaç bölümünü okumanız ya da kılavuzun Dil
Başvuru Kılavuzu bölümünü okumanız faydalı olacaktır.
Devreye soktuğumuz ikinci kavram, strpos() işlevi ile
yaptığımız çağrı oldu. strpos(), bir dizgeyi başka bir
dizgenin içinde arayan yerleşik bir PHP işlevidir. Burada
'MSIE'
dizgesini (iğne)
$_SERVER['HTTP_USER_AGENT'] içinde (samanlık)
arıyoruz. Eğer iğne samanlıkta bulunursa işlev iğnenin konumunu
samanlığın başlangıcına göreli olarak döndürür. Aksi takdirde false
döner. if ifadesinin sonucu
true
olduğu takdirde false
dönmez ve 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şlevleri kullanarak siz de benzer örnekler yazabilirsiniz. İlgili her
kılavuz sayfası aynı zamanda örnekler de içermektedir. Bu işlevleri nasıl
kullanmanız gerektiğinden emin değilseniz, kılavuzdaki bir işlev tanımı nasıl okunur ve PHP işlevleri bölümlerini
okuyabilirsiniz.
Bunu bir adım öteye taşıyabilir ve bir PHP bloğunun tam ortasındayken bile PHP kipine nasıl girip çıkabileceğimize bakabiliriz:
Örnek 3 - HTML ve PHP kiplerini karıştırmak
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() false olmayan bir değer döndürmelidir</h3>
<p>Internet Explorer kullanmaktasınız</p>
<?php
} else {
?>
<h3>strpos() false döndürmelidir</h3>
<p>Internet Explorer kullanmıyorsunuz</p>
<?php
}
?>
Bu betikten elde edilebilecek sonuçlardan biri:
<h3>strpos() false olmayan bir değer döndürmelidir</h3>
<p>Internet Explorer kullanmaktasınız</p>
Bir çıktı üretmek için PHP echo komutunu kullanmak yerine, PHP kipinden
çıktık ve sadece düz HTML gönderdik. Burada dikkat edilmesi gereken önemli
nokta, betiğin mantıksal akışının değişmiyor olmasıdır.
strpos() işlevinden edinilen sonuca göre HTML
bloklarından yalnızca biri görüntüleyiciye gönderilmektedir. Başka bir
deyişle, bu işleyiş MSIE
değişkeninin bulunup
bulunmamasına bağlıdır.