
PHP'ye Giriş
C/C++, Pascal, hatta Visual Basic bilen kişiler için PHP
öğrenmek hemen hemen bir öğleden sonrayı ayırmak suretiyle yapılabilecek bir
iştir.
Bu dillere aşina olmayanlar ise belki bir kaç öğleden sonralarını
ayırmak zorunda kalabilirler! PHP, bir Script dilidir; yani kodları düz yazı
dosyaları halinde kaydedilir ve kullanılacağı ortamda bir yorumlayıcı
tarafından yorumlanır. Bu, PHP ile yazacağınız programları, derlemek yani
ortaya bir EXE veya çalıştırılabilir başka bir dosya çıkartmaya gerek olmadığı
anlamına gelir. Fakat PHP Script'lerinizi çalıştırabilmek için bu dili bilen
bir programa ihtiyacınız vardır. Bu programın tek başına (komut istemci
penceresinde veya terminal ekranında) çalışması mümkün olduğu gibi, Web Server
tarafından da çalıştırılabilir olması gerekir. Başka bir deyişle Web Sunucu programının
PHP anlar hale getirilmesini sağlamak zorundayız.
PHP yorumcusu, bugün
Zend-çekirdeği adı verilen bir Scripting teknolojine dayalı olarak, Zeev
Suraski ile Andi Gutmans tarafından sıfırdan, tamamen yeniden yazılmış
bulunuyor. Zend, tıpkı Windows Script Host ve mesela Visual Basic for
Applications (VBA) gibi, işletim sistemine kendisi ile uyumlu Script
dilleriyle yazılmış programları çalıştırma imkanı kazandıran bir teknolojidir
(Zend konusunda ek bilgiyi Internet'te www.zend.com adresinde bulabilirsiniz.)
Bugün bu dilin resmî adı "PHP: Hypertext Preprocessor" (Hiper-metin
ön-işlemcisi) olarak değiştirildi, ve çeşitli Web Server'ların PHP dili
anlaması için gerekli yorumlayıcıları yeniden üretlidi. 20 Ocak 200'de
İsrail'de PHP'nin ilk uluslararası konferansı yapıldı ve 4'ncü sürümünün betası
ortaya kondu.
Peki ama PHP nedir?
PHP ile artık oturup her türlü işlevselliği sahip programlar
yazabilirsiniz; yani PHP başlı başına uygulama alanları bulabilecek düzeye
ulaşmıştır. Başka bir deyişle PHP ile oyun programından tutun veritabanı
yönetimine kadar hemen her türlü programı yazabilirsiniz. Bizi bu kitapçıkta
ilgilendiren tarafıyla PHP, Web Sunucu'ya bir takım işler yaptırmak için
program yazma dilidir. Tıpkı CGI/Perl veya ASP ya da ColdFusion, Java (Javascript
değil!) gibi! PHP kodları, oluşturacağımız HTML sayfalarında HTML etiketlerinin
arasında kendi özel ayracı içinde yazılır:
echo
("Merhaba Dünya!");
?>
İster kişisel
bilgisayarımızda, ister gerçek Internet ortamında olsun, bir Web Sunucu,
ziyaretçinin (Internet istemci programının, Browser'ın) talep ettiği dosya
adının uzatması olarak ".PHP,"
".PHP2," ".PHP3," veya ".PHP4" görünce,
kendine kendine, "Yine bana iş çıktı!" diye düşünür! Çünkü Web
Server, uzatması ".htm" veya ".html" olan bir dosyayı,
kendi sabit disklerinden birinde bulur ve zahmetsizce, ziyaretçinin
bilgisayarına gönderir. Fakat, ".asp," .pl," ".cfm"
gibi, ".PHP" uzatması, Web Sunucu'ya bu sayfayı olduğu gibi, alıp ziyaretçinin
Browser'ına göndermek yerine, önce PHP yorumlayıcıyı çağırarak, ona teslim
etmesi gerektiğini bildirir. PHP yorumlayıcısı (yani Windows ortamında PHP.exe
veya 4'ncü sürümle gelen PHP4isapi.dll, Unix ve türevlerinde
çalıştırılabilir PHP dosyası), kendisine teslim edilen bu belgede önce
"" ayraçları arasındaki PHP kodlarını
seçerek alır ve gereği ne ise onu yapar. Bu ayraçların içinde kalan kodlar,
bizim yapılmasını istediğimiz işlemin komutlarıdır. HTML ile yetinmeyip, PHP
kullanmamızın sebebi, bu komutların HTML'in yapayacağı şeyleri yapmasıdır.
HTML'in yapamayacağı
şeylerin başında, Web Sunucusu'nda yapılacak işler vardır. Sözgelimi HTML
etiketlerini kullanarak, Web Sunucusu'ndaki bir veritabanı dosyasını açıp,
içindeki verileri okuyamayız. HTML yoluyla Web Sunucusu'nun sabit disklerindeki
düz yazı dosyalarını da okuyamayız ve bu disklere dosya yazamayız. HTML
etiketleri ile Web ziyaretçimizden bilgi edinebilir ve bunları Sunucu'ya
yollayabiliriz; ama o kadar! Bu bilgileri işe yarar şekle sokmak için bize
Server'da çalışan bir program gerekir. Server'da çalışan program, EXE ve DLL
veya JSP (Java Server Pages) gibi
bir "gerçek program"; veya Perl, ASP ve PHP gibi Script diliyle
yazılmış bir program olabilir. (Gerçek programları yazanlar, tabiî, sizin
Script diliyle yazılmış programlara "program" demenize çok kızarlar!
Ama bu Script pogramlarının program olmasını hiç engellemez.)
Ne diyorduk? Web Sunucu,
".PHP" uzatmasını görünce telaşa kapılır, bu dosyayı PHP
yorumlayıcısına verir ve o da ""
ayraçları içindeki kodları icra eder, demiştik. Bu icraatın sonunda ortaya
çıkan ürün eğer ziyaretçiye gönderilecekse, HTML etiketleri içinde gönderilir;
yani ziyaretçi asla PHP kodlarını göremez. Kimi zaman PHP programımızın
çalışması sonucu ortaya ziyaretçiye gönderilecek bir ürün çıkmaz; elde edilen
sonuç ya başka bir programa (örneğin elektronik ileti gönderen bir Sendmail
progamına) hammadde olarak verilir, ya da Server'da sabit diske yazılır. Fakat
her durumda, Web ziyaretçimiz bizim PHP kodlarımızı göremez; bu Web sayfalarımızda
PHP kodu kullanmamız halinde, sayfalarımızın Browser tarafından tanınması veya
tanınmaması gibi bir durumun ortaya çıkmaması demektir. Ziyaretçi ne tür
Browser kullanırsa kullansın, kendisine Sunucu'dan daima saf HTML kodu geleceği
için, sayfalarımızı rahatça görebilecektir. Tabiî bir nokta var: Sayfalarımızda
herhangi bir Browser'ın arızalı yorumladığı veya hiç yorumlayamadığı HTML
etiketleri bulunabilir; ya da söz gelimi ziyaretçiye giden HTML'in içinde
Browser'da çalıştırılacak olan başka Script kodları bulunabilir; ve Browser bu
kodları anlamayabilir. Örneğin, HTML sayfanızda VBScript kodları kullanmış
iseniz, Netscape ile sitenize bağlanmış olan kişiler bu kodun oluşturmasını
istediğiniz etkiyi göremeyeceklerdir; çünkü Netscape VBScript anlamaz! PHP ile
yazacağınız Web programlarının (eski deyimiyle "sayfaların")
oluşturacağı HTML belgesinin Browser türleri ve sürümleri ile uyarlılığını
sağlamak yine Web programcısı olarak sizin sorumluluğunuzdadır.
Özetlersek, PHP bir CGI
programlama dilidir; bu dille, Web Sunucusu ile Web ziyaretçisi arasındaki
buluşma noktası olan CGI'da bilgi alışverişi yapılabilir; Sunucu'da bulunan
başka programlar çalıştırılabilir ve böylece Web sayfalarımıza HTML'in
sınırlamalarının ötesinde hareket ve ziyaretçi ile etkileşme olanağı
kazandırılabilir.