PHP Önsöz
. 4 PHP Desteği veren sitelerle ilgili not:
6 PHP'ye Giriş
. 7 PHP ve Veritabanı
10 PHP ve Web Sunucusu
. 12 Unix/Linux Sistemleri
12 Linux'ta program derlediniz mi?
. 13 Güvenli socket ve Internet Erişimi Katmanı
17 Windows-PWS ve IIS
.. 20 IIS 4.0 ve 5.0
. 20 Browser Yetenek Dosyası: Browscap.ini
21 PWS 4.0
. 22 Windows'da Apache!
23 Windows'da MySQL
. 24 PHP'nin Yapı Taşları
31 PHP programını durdurmak
. 31 Değişkenler
. 31 Veri Türleri
33 Tür Değiştirme
. 34 Fonksiyon
. 35 Escape
. 37 Dört yararlı fonksiyon
. 42 İşlemciler (Operatörler)
44 Bir Arttırmak veya Azaltmak için
. 46 Sabit Değerler
. 49 Tarih ve saat Verisi
51 PHP'de Program Denetimi
53 if Deyimi
53 switch deyimi
55 switch için kısa yol
57 Döngüler
. 57 while döngüsü
. 58 do..while
. 59 for döngüsü
. 60 foreach
. 61 Döngüyü sona erdirmek için: break
. 61 Döngüyü sürdürmek için: continue
. 62 Fonksiyonlar
. 64 Fonksiyon Tanımlama ve Çağırma
. 64 Fonksiyona varsayılan değer verebiliriz
. 70 Değişkenlerin kapsamı: global ve static
. 72 Dizi-Değişkenler, Nesneler
. 76 Dizi Değişkenler
. 76 Dizi Değişken Oluşturalım
... 77 Dizi değişkenleri kullanalım
... 81 Dizi Değişkenlerin Düzenlenmesi
86 Dizileri birleştirme: array_merge()
86 Dizilere değişken ekleme: array_push()
86 Dizinin ilk elemanını silme: array_shift()
87 Diziden kesit alma: array_slice()
87 Dizileri sıralama: sort() ve rsort()
87 İlişkili dizileri sıralama: asort() ve ksort()
88 Nesneler
. 88 Bir Nesne Oluşturalım
... 89 PHP İşbaşında
. 92 Formlar
. 92 Form'dan GET Metoduyla Gelen Bilgiler
. 95 URL Kodları
99 Form'dan POST Metoduyla Gelen Bilgiler
. 102 Form ile işlemciyi Birleştirelim
... 104 Dosya "çıkartma"
. 106 Dosya İşlemleri
109 Harici Dosya (include)
109 include mu, require mı?
. 111 Dosyalar hakkında bilgi
112 Dosya var mı? file_exits()
112 Dosya mı, dizin mi? is_file() ve is_dir()
112 Dosya okunabilir mi? is_readable()
113 Dosya yazılabilir mi? is_writable()
113 Dosya çalıştırılabilir mi? is_executable()
114 Dosya boyutu: filesize()
114 Dosyaya son erişim tarihi: fileadate(), filemtime() ve filectime()
114 Dosyalar oluşturma ve silme
. 115 Dosya açma
. 116 Bir Fonksiyonu durdurmak için: Öl!
116 Dosya okuma: fgets(), fread() ve fgetc()
118 fseek() ile ölçü belirleme
. 120 Dosyaya yazma ve ek yapma: fwrite() ve fputs()
121 Kullanımdaki dosyayı kilitleyin!
122 Dizinlerle İşlemler
. 123 Dizin içeriğini listeleme: opendir() ve readdir()
123 Dizin oluşturma: mkdir()
124 Dizin silme: rmdir()
125 Bir Dosya İşlemi Örneği: Konuk Defteri
125 Metin Düzenleme ve Düzenli İfadeler
. 130 Temel Alfanümerik Fonksiyonları
130 substr()
130 trim()
131 chr()
131 ord()
132 strlen()
132 printf() ve sprintf()
132 number_format()
134 Tarih ve Saat Düzenleme
. 135 Düzenli İfadeler
. 137 Eşleştirme deyimleri ve işaretler
. 137 Düzenli İfadelerde Özel Karakterler
. 138 Karakter Grupları
139 Düzenli İfade Fonksiyonları
143 ereg() ve eregi()
144 ereg_replace() ve eregi_replace()
145 split()
146 sql_regcase()
147 PHP ile Veritabanı
148 MySQL Veritabanı
149 mySQL veri türleri
150 PHP-MySQL İlişkisi
153 PHP'de Güvenlik
. 160 Parola ve SSL
. 161 Tırnak İşareti Sorunu
. 162 PHP Kaynakları
162 Önsöz
Rasmus Lerdorf, tarihin ilk dönemlerinde yani Internet'in henüz
yayıldığı 1990'ların ortalarına doğru iş arıyordu; hayat öyküsünü bir
kişisel sayfada yayınlamak ve başvuracağı yerlere bu sayfanın adresini
verebileceğini düşündü. Fakat o dönemde özellikle üniversitelerin Unix
ağlarında kurulan Web Sunucularda kişisel sayfa yapmak kolay değildi.
Rasmus, kendisi için hazırladığı yazılımın Web'e aşina olmayanlar
starafından da kolayca kullanabileceğini düşündü. Bu yazılımın büyükçe
bir bölümü Perl dilinden alınmıştı. Adına
Personal Home Page(Kişisel Ana Sayfa) dediği bu programın çok tutulması üzerine Rasmus
Lerdorf, Internet Sitesi kuran herkesin birinci gün değilse bile ikinci
gün farkına vardığı ihtiyacı, yani bir form yoluyla ziyaretçiden gelen
bilgileri işlemeyi sağlayan ekleri yazdı ve programın adı PHP/FI (
Form Interpreter/Form
Yorumlayıcı) oldu. Kimileri programın bu sürümüne PHP2 adını taktı; ve
bu ad, programın çok değişmesine ve gelişmesine rağmen uzun süre
değişmeden kaldı.
Rasmus Lerdorf, 1995'in ortalarında, Zeev
Suraski, Stig Bakken, Shane Caraveo ve Jim Winstead ile bir grup kurdu
ve PHP'yi Perl'den ödünç alma rutinlerle iş yapan bir paket olmaktan
çıkartıp, Nesne-Yönelimli (
Object-Oriented)
bir programlama dili haline getirdi. Bu grup, bugün PHP4 adı verilen bu
dili geliştirmekte ve yeni işlevsellikler kazanması için sürekli
çalışmaktadır. PHP, Linux gibi, Açık Sistem kurallarına tabidir;
isteyen programda istediği değişikliği yapabilir; ancak bu
değişiklikten para kazanamaz ve yaptığı değişiklikleri isteyen herkese
açıklamak zorundadır.
Linux'un önümüzdeki yıllarda en çok
kullanılan işletim sistemi olacağı yolundaki bilgiler kuşkusuz en çok
Linus Torvalds'ı şaşırttı. Linux'un bu başarısındaki en önemli anahtar
nokta olan açık kaynak geliştiriliyor ve dünyanın heryerinden yazılım
geliştiricilerin desteğini alıyor olması. Aynı başarıyı Web yazılım
geliştirme dili PHP de gösteriyor. PHP bundan iki yıl öncesine kadar
adı duyulmamış basit bir dildi. Ancak şimdi gerek performans gerek
destek açısından diğer Web yazılım geliştirme dilleri ile kolayca
yarışıyor; hatta bunları fazlasıyla geçiyor. Hemen her türlü işletim
sistemiyle çalışıyor olması da cabası. PHP, her türlü veritabanıyla
sorunsuz çalışıyor olmasıyla ve Zend derleyicisiyle daha da yaygınlık
ve güç kazanacak. PHP ve açık kaynak olarak geliştirilmeye başlanan
MySQL'in birlikte kullanıldıklarında yakaladıkları etkinlik binlerce
Dolar verilerek alınan veritabanı ve uygulama dilleriyle yarışmanın
ötesinde farklara sahip.
Türkiye'de PHP oldukça yeni kullanılmaya başlandı. Dünyadaki PHP
kullanıcılarının tercih ettikleri PHP editörü PHPed'i bir Türk'ün
geliştirmiş olması, hepimize haklı bir gurur veriyor. Ayrıca
http://www.php.org.tr adresindeki oluşum çok kısa sürede Türkiye'de PHP'nin layık olduğu yeri alacağını gösteriyor.
Bu kitapçığı PHP'nin 4'ncü sürümüne göre yazdık. Burada verdiğimiz
örnekleri uyguladığınızda beklenen sonucu alamazsanız, önce sizin
sisteminizde kurulu PHP'nin sürümünü kontrol etmelisiniz. Bu
kitapçıktaki örnek kodları PC Life dergisinin Internet sitesinde,
http://www.pclife.com.tr/........../php_kodlar.zip adresinde bulabilirsiniz. Ayrıca bu kitapçıktaki kodların tümünün gerçek bir Web sunucuda nasıl işlediğini görmek için
http://www.mycgiserver.com/~ocal/ adresine bakabilirsiniz.
Bununla birlikte bir programlama dilinin incelikleri, ancak kodlarınızı
kendiniz yazarsanız öğrenilebilir. Örnek kodlardan, ancak kendi
yazdığınız kodlar beklediğiniz sonucu vermediği taktirde, karşılaştırma
amacıyla yararlanmalısınız. Sizi biraz da buna zorlamak için yer yer
konuları bu kodların yazıldığı varsayımı ile ele alacağım.
Bugüne kadar PHP programlarrına
.php3uzatmasını vermek adeta gelenek halini almıştı; ancak PHP'nin 4'ncü
sürümüyle birlikte, konfigürasyon ve INF dosyaları, yapılandırma
sırasında işletim sistemlerine ve Web sunucularına varsayılan değer
olarak sadece
.php uzatmasını tanımasını bildiriyorlar. PHP
programlarınıza bundan başka uzatmalar verecekseniz, Linux'ta Apache
konfigürasyon dosyasını, Windows'da ise Registry kayıtlarını
değiştirmeniz gerekir.
İki bölüm olarak sunacağımız PHP
kitapçığının birinci bölümünün yazılmasında yurdumuzda PHP
kullanıcılarını eğitme ve destekleme hareketinin öncüleri Sayın Kayra
Otaner, Serdar Soydemir ve Özgür Akan, değerli yardımlarını
esirgemediler. İkinci kitapçıkta yer alacak uygulamaların tümünü bu
grup geliştirdi ve Açık Kaynak hareketinin gerçek temsilcileri
olduklarını göstererek, serbestçe kullanılmak üzere okuyucularımıza
sundular. Kendilerine sonsuz teşekkürlerimizi sunarız. Bununla birlikte
bu kitapçıkta varolan hataların tümü bana aittir.
PHP Desteği veren sitelerle ilgili not: Bu kitapçıkta bir kaç sayfa ilerledikten sonra, yapmak
isteyeceğiniz ilk işlerden birinin ücretli veya ücretsiz PHP desteği
veren bir Wes sitesi evsahibi (
Hosting) firması aramak olacağını tahmin ediyorum. Bu amaçla aramalarınıza
http://www.pageresource.com/putweb/index.html adresinden başlamanızı salık veririm. Eğer doğruca böyle bir evsahibi firmaya ulaşmak isterseniz
http://www.mycgiserver.com adresine gidebilirsiniz. Kitapçığın sonunda çeşitli PHP kaynaklarının bir listesini de bulabilirsiniz.