PHP (açılımı PHP: Hypertext Preprocessor) geniş bir kitle tarafından kullanılan, özellikle sanal yöreler üzerinde geliştirme için tasarlanmış HTML içine gömülebilen bir betik dilidir.
Tamam da, bu tam olarak ne anlama gelmektedir? Bir örnek:
Örnek 1 - Başlangıç olarak bir örnek
<!DOCTYPE html>
<html>
<head>
<title>Örnek</title>
</head>
<body>
<?php
echo "Merhaba, ben bir PHP betiğiyim!";
?>
</body>
</html>
Bir PHP betiğinin Perl ya da C gibi dillerden ne kadar farklı bir yapıda
olduğuna dikkat edilmelidir. HTML kodu oluşturmak için bir sürü kod
yazmak yerine, istenen işi yapan bir PHP kodu yazılır ve HTML kodunun
içine gömülür (bu örnekte, yapılan iş ekrana yazı yazmak). PHP kodu
<?php
ve
?>
özel başlangıç ve bitiş etiketleri arasına
yazılır. Bu etiketler "PHP kipine" rahatlıkla girip çıkabilmeyi
sağlar.
PHP'yi Javascript gibi kullanıcı tarafında çalışan dillerden ayıran, sunucu tarafında çalıştırılıyor olmasıdır. Yukardaki örnekteki kodu kendi sunucunuzda çalıştırırsanız, sitenize bağlanan kullanıcılar kodu göremeyecekler ve müdahale edemeyecekler, yalnızca sonucu görebileceklerdir. Dilerseniz HTTP sunucunuzu bütün HTML dosyalarınızı PHP dosyası olarak görüp işleyecek hale bile getirebilirsiniz. Buna rağmen kullanıcılar sizin gerçekte sunucu taraflı bir uygulama kullandığınızı fark edemeyebilir.
PHP kullanmanın en güzel yanlarından biri, yeni kullanıcılar için öğreniminin oldukça kolay olması ve aynı zamanda profesyonel kullanıcılar için ileri seviyede özellikler içermesidir. PHP'nin özellikler listesi uzun da olsa okunmalıdır. Kısa sürede PHP ile programlamaya başlanabilir ve birkaç saat içersinde basit programlar yazmaya başlanabilir.
PHP'nin gelişimi sunucu-taraflı programlamaya odaklanmışsa da, çok daha fazlasının yapılmasına olanak tanıyan araçlara da sahiptir. PHP neler yapabilir? bölümünde bu araçlar hakkında daha fazla bilgiye ulaşılabilir. Eğer yalnızca site programlaması yapılacaksa, Basit bir eğitmen bölümünden devam edilebilir.
Her şeyi. PHP temel olarak sunucu-taraflı programlamaya odaklanmıştır, bu nedenle CGI uygulamalarının yaptığı her şey, örneğin formdan veri toplama, dinamik sayfa içeriği oluşturma, ya da çerez alıp gönderme gibi işlemler yapılabilir. Ancak PHP bunlardan çok daha fazlasını yapabilecek yetenektedir.
PHP betiklerinin kullanıldığı başlıca iki alan vardır.
PHP bütün büyük işletim sistemlerinde, Linux, birçok Unix türevi (HP-UX, Solaris, OpenBSD vb.), Microsoft Windows, MacOS, RISC OS dahil olmak üzere çok çeşitli platformlarda çalışabilir. PHP benzer biçimde bugün yaygın biçimde kullanılan HTTP sunucularının büyük kısmını destekler. Bunlara Apache, IIS ve daha birçok sunucu örnek gösterilebilir. Bunlara FastCGI PHP çalıştırılabilirini kullanan lighttpd ve nginx gibi sunucular da dahildir. PHP modül olarak kullanılabildiği gibi bir CGI işleyici olarak da çalıştırılabilir.
Sonuç olarak, PHP ile işletim sistemi ve HTTP sunucusu seçme özgürlüğü gelir. Dahası, hangi programlama yönteminin kullanılacağına, işlevsel yaklaşımın mı yoksa nesne yönelimli yaklaşımın mı yoksa her ikisinin birden mi kullanılacağına bile karar verilebilir.
PHP'nin yetenekleri yalnızca HTML çıktı üretmekle sınırlı değildir. Örneğin, görüntüler ve PDF dosyaları gibi zengin çeşitlilikte dosya türünün çıktılanması, veri şifreleme, epostaların gönderilmesi ve daha pek işlem PHP'nin yetenekleri arasındadır. Aynı şekilde JSON ya da XML gibi her türden metin tabanlı dosyayı oluşturabilmek mümkündür. PHP bu dosyaları otomatik olarak oluşturabilir ve ekrana yazdırmanın yanında dosya sisteminde saklayabilir, böylece dinamik içerik için sunucu-taraflı bir depo sistemini kullanıma sunabilir.
PHP'nin en güçlü ve en çok üstünde durulan özelliklerinden biri, sahip olduğu geniş ve gelişmiş veritabanı desteğidir. Veritabanlarına özgü eklentilerden birini (örn. mysql) kullanarak veya PDO gibi bir soyutlama katmanı kullanarak PHP ile veritabanı bağlantılı site sayfaları oluşturmak ya da ODBC eklentisi üzerinden bu standardı destekleyen bir bağlantı açmak son derece basittir. Diğer veritabanları için cURL eklentisi veya soketler (CouchDB gibi) kullanılabilir.
PHP, farklı hizmetlerle LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (Windows için) ve daha sayısız protokol aracılığıyla iletişim kurabilecek bir altyapıya da sahiptir. Hazır modüllerin haricinde ham ağ soketleri açıp bu soketler üzerinden istediğiniz bütün protokollerle çalışabilirsiniz. PHP, WDDX üzerinden sanal olarak sanal doku üzerinde hangi dilde yazılmış olursa olsun tüm uygulamalarla haberleşebilir. Ayrıca Java nesnelerinin oluşturulabilmesi ve şeffaf biçimde PHP nesneleri olarak kullanılabilmeleri önemli bir diğer özelliktir.
PHP oldukça faydalı belge işleme özelliklerine sahiptir. Bu yelpaze Genişletilmiş POSIX ya da Perl düzenli ifade komutlarından (PCRE) XML dosyalarını okumaya ve çözümlemeye kadar uzanır. PHP tüm XML uzantılarını libxml2 tabanında tek bir standartta toplamış ve SimpleXML ile XMLReader ve XMLWriter desteğini de bünyesine katarak sunduğu imkan yelpazesini genişletmiştir.
Alfabetik olarak ve sınıflandırılarak belgelenmiş daha pek çok ilginç eklenti vardır. Bunlara ek olarak » XDebug gibi PHP kılavuzu içinde belgelenmiş ya da belgelenmemiş PECL eklentileri de mevcuttur.
Görüldüğü üzere bu sayfa PHP'nin sunabileceği bütün özellikleri ve faydaları anlatabilmek için yeterli değil. Yapılandırma ve Kurulum bölümünde ve İşlev başvuru kılavuzunda listelenen eklentilerin başlangıç bölümlerindeki açıklamalardan her bir eklenti için daha fazla bilgiye ulaşılabilir.