Php Nedir? 11.10.2013



Benzer belgeler
Internet Programming II

Internet Programming II

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Web Tasarımının Temelleri

İnternet Programcılığı Dersi 2.Dönem Ders Notu

PHP kodları çoğu zaman HTML kodları arasına gömülü olarak yazıldığından öncesinde HTML kodlarınının bilinmesinde fayda vardır.

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

İNTERNET PROGRAMCILIĞI HAFTA. PHP ile FORM İŞLEMLERİ. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Form Elemanları Kullanımı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Web Teknolojileri ve Programla

İNTERNET PROGRAMCILIĞI - II

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

İNTERNET PROGRAMCILIĞI I

Internet Programming II

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

HSancak Nesne Tabanlı Programlama I Ders Notları

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

MODÜL 2 HTML İLE GELİŞMİŞ ÖZELLİKLER

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

Özyineleme (Recursion)

Temel Başlıklar. HTML Formlarının amacı Çalışma şekli Form Action ve Method

JAVASCRIPT JAVASCRIPT DİLİ

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

C Programlama Dilininin Basit Yapıları

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

1.PROGRAMLAMAYA GİRİŞ

Diziler (Arrays) Çok Boyutlu Diziler

İnternet Programcılığı Form İşlemleri ve Oturum Yönetimi Örnekleri

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

ALGORİTMA VE PROGRAMLAMA I

Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (;) ile biter.

İNTERNET PROGRAMCILIĞI - II

Öğr. Gör. Serkan AKSU 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

PROGRAMLAMAYA GİRİŞ DERS 2

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Laboratuvar 2 Tek Kayıt Fonksiyonları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

7. Çerçeveler. Bu bölümü bitirdiğinizde,

C Konsol Giriş Çıkış Fonksiyonları

Metin Text Kutuları. Metin kutusu oluşturmak için <input> tagı kullanılır.

Diziler İndisli Değişkenler

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

PHP nin Tarihi. PHP ile başka neler yapılabilir?

Kayan Çerçeveler. Web sayfası içerisine kaydırılabilir çerçeveler yerleştirmek için

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

PHP ile İnternet Programlama

Algoritma ve Programlama: Karar Yapıları ve Döngüler

HTML5 Form Yapısı ve Form Elemanları

Bölüm 10: PHP ile Veritabanı Uygulamaları

FORMÜLLER VE FONKSİYONLAR

PHP ile İnternet Programlama

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

DIV KAVRAMI <style> position: absolute

EXCEL PROGRAMININ ARAYÜZÜ

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

MATLAB/Değişkene Değer Atamak

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

çindekiler 01. Kurulum

Algoritmalar ve Programlama. Algoritma

RAPOR VE FORMLARDA KULLANILAN FONKSİYONLAR

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Temel Excel Kullanım Bilgisi

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 4

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLS. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

4 Front Page Sayfası Özellikleri

=A1+A2-A3, =A1*A2/A3,

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Javascript Ders Örnekleri -2. Tarayıcı Görüntüsü

Resim 7.20: Yeni bir ileti oluşturma

Print Komutu ile Değişkenleri Yazdırmak

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Transkript:

Php Nedir? PHP sunucu-taraflı, platformdan bağımsız ve HTML içine gömülebilir bir betik dilidir. Genel yapı ve yazılım kuralları yönünden C ve Perl dillerine çok yakın bir dildir. Rasmus Lerdorf tarafından hazırlanan bu dil, kendi web sitesine bağlı olan kişilerin takibini yapılması isteği ile ortaya çıktı. Rasmus Lerdorf bu dile ilk başta "Personal Home Page" adını koydu (çünkü kendi kişisel web sayfası üzerinde kullanmıştı). Şu anda ise PHP sözcüğü, "PHP: Hypertext Preprocessor" sözcüklerinin baş harflerinden oluşan kısaltmayla tanımlanmaktadır. 2 1

Php nin Avantajları Çok hızlı bir dildir. Rahat ve hızlı kodlama yapılabilir. Derlenmesine gerek yoktur. İnternette büyük bir geliştirici grubuna sahiptir. Php kodları platformdan bağımsız olduğu için Windows, Linux, MacOS gibi birbirinden farklı platformlarda çalışabilir. 3 Statik ve Dinamik Dil nedir? Statik Dil: Kaynak kodları kullanıcı tarafından görülebilen web programlama dilidir. Bu dil HTML olarak adlandırılmaktadır. Dinamik Dil: Kaynak kodları kullanıcı tarafından görülemeyen, önce sunucu tarafında çalışıp HTML koduna çevrilip kullanıcıya gönderilen dillerdir. En çok kullanılan diller PHP ve ASP.NET dir. 4 2

PHP nin çalışması için gerekenler Apache Web Sunucusu(http://www.apache.org) MySQL (Veritabanı) (www.mysql.com) PhpmyAdmin (Veritabanı yönetimi için) PHP Kütüphaneleri Yukarıdakilerin toplu olarak kurulduğu paketler; EasyPHP WampServer Xamp Apachetriad 5 Php Editörleri PhpDesigner Notepad++ Eclipse PDT NetBeans PhpStorm 3

Php Program Yapısı Php kodları şu şekilde yazılır. <?.. Bu etiketler bazen kullanılamayabilir. Bunun için php.ini dosyası içinde short_open_tag değeri «on» yapılmalıdır. Yada.. Ekrana mesaj yazdırma Echo Komutu: Genel kullanımı şöyledir: Echo "mesaj"; Print komutu: Genel kullanımı şöyledir: print("hello World"); 4

Merhaba.php echo merhaba PHP ; 9 Çalıştırmak için; Merhaba.php dosyasını Windows ta Not Defteri nde yazarak oluşturup; Wamp kullanıyorsanız ; c:\wamp\htdocs dizinine; EasyPHP kullanıyorsanız c:\programfiles\easyphp\htdocs klasörüne kaydediniz. NOT: Wamp ve EasyPHP nin yeni versiyonlarında veya kurulum yaparken bu yollar değişmiş olabilir, genelde htdocs klasörüne kaydedilir. 10 5

Çalıştırmak için; http://localhost/merhaba.php ya da ; http://127.0.0.1/merhaba.php yazılmalıdır. 11 Merhaba2.php echo İkinci PHP örneği ; Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/merhaba2.php 12 6

Phpbilgi.php <html> <head> <title></title> </head> <body> phpinfo(); </body> </html> Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/phpbilgi.php 13 PHP de değişkenler Değişkenler $ işareti ile başlar. Değişken rakamla başlayamaz, değikenler içinde özel karakterler kullanılamaz. Ama alt çizgi (_) kullanabilirsiniz. Geçersiz değişken tanımları; $3not, $2x, $a(, $toplam?, Geçerli değişken tanımları; $not, $not1, $toplam, $notlar_toplami Değişkenler içinde Türkçe karakterler kullanılmaz: Örneğin; ıi,şş,çç,ğğ,öö,üü 14 7

Değişken tipleri Tamsayı (integer) veri tipi Ör: $i=400; Kayan noktalı (real) veri tipi Ör: $i=4.02; 15 tamsayi.php Ondalık kısmı olmayan sayılardır, pozitif ve negatif olabilirler. Örnekler: 200, -929, 283838, 2 $i=43; echo ($i); $x=-203; echo ($x); $y=39992; echo($y); 16 8

Kayan noktalı (real) veri türü Ondalıklı kısmı bulunan sayılardır. Ondalıklı sayılara çeşitli isimlerde rastlayabilirsiniz; double, float, real gibi. ondalik.php $i=23.83; echo ($i); $x=-22.7; echo ($x); $y=5432.38; echo($y); 17 Karakter Dizileri (string) veri türü İsminden de anlaşılacağı gibi karakterlerden (harf, rakam, işaret) oluşan veri türüdür. Rakam (0,1,2,3,4,5,6,7,8,9) Harf (a,a,b,b,c,c,d,d,e,e,f,f,g,g, ) İşaret (+,#,%,-,&,[,],(,).) String veri türü çift tırnak veya tek tırnak olarak tanımlanabilmektedir. Aradaki fark çok önemlidir. 18 9

Karakter Dizileri (string) veri türü a) Çift tırnak ile tanımlanan karakter dizileri $okul= Ankara Ünv. ; $okul1= $okul Bilgisayar Müh. ; echo $okul1; // Ankara Ünv. Bilgisayar Müh. yazar. a) Tek tırnak ile tanımlanan karakter dizileri $okul= Ankara Ünv. ; $okul1= $okul Bilgisayar Müh. ; echo $okul1; // $okul Bilgisayar Müh. yazar. 19 Değişken tipleri Dizi tipli (arrays) değişkenler $diziad[0]= ANKARA ; Not: Bu konu ilerleyen bölümlerde detaylıca incelenecektir. 20 10

degiskencift.php Bu tanımlamada çift tırnak içinde başka bir değişken varsa değeri ekrana basılır. Örneğin aşağıdaki örnekte ekrana Yaşasın Dünya basılacaktır. $degisken1 = "Yaşasın"; $degisken2= $degisken1 Dünya"; echo $degisken2; Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/degiskencift.php 21 degiskentek.php Bu tanımlamada tek tırnak içinde başka bir değişken varsa değeri ekrana basılmaz. Örneğin aşağıdaki örnekte ekrana $degisken1 Dünya basılacaktır. $degisken1 = "Yaşasın"; $degisken2= $degisken1 Dünya ; echo $degisken2; Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/degiskentek.php 22 11

PHP de Sabitler Bazen değerinin değiştirilmesini istemediğimiz durumlar olabilir. Örneği pi sayısı matematikte 3.14 e eşittir, bu değerin değişken gibi değiştirilmemesi gerekir. Kullanımı Define (Sabitin ismi, değeri) şeklindedir. Örneğin; Define ( pi, 3.14); echo (pi); Burada dikkat ederseniz PHP de değişken tanımlamak için kullanılan $ işareti kullanılmadı. 23 Değişken tipini öğrenme gettype() fonksiyonu: Belirtilen değişkenin türünü döndürür. $virgullu=2.11; Print ( türü:.gettype($virgullu)); 12

Değişken tipini değiştirme settype() fonksiyonu: Belirtilen değişkenin türünü değiştirir. $virgullu=2.11; settype($virgullu,string); Print ( türü:.gettype($virgullu)); Değişkeni silme unset() fonksiyonu: Belirtilen değişkeni hafızadan siler. $degisken = "Ankara Ünv."; unset($degisken); 13

Değişkenin değerini kontrol etme empty() fonksiyonu: Bir değişkenin değerinin olup olmadığını kontrol eder. $degisken = ""; if(empty($degisken)) { echo "değişken değeri boş veya geçersiz değer"; } Değişken Değerlerinde Boşluk Silme trim() fonksiyonu: Verinin sağında ve solunda yer alan tüm boşlukları temizlemek için kullanılır. $veri = " www.enverbagci.net "; echo trim($veri); 14

Değişken Değerlerinde Boşluk Silme rtrim() fonksiyonu: Verinin sağında yer alan tüm boşlukları temizlemek için kullanılır. $veri = " www.enverbagci.net "; echo rtrim($veri); Değişken Değerlerinde Boşluk Silme ltrim() fonksiyonu: Verinin solunda yer alan tüm boşlukları temizlemek için kullanılır. $veri = " www.enverbagci.net "; echo ltrim($veri); 15

Değişken Kontrol Fonksiyonları is_string() is_int() is_float() strval() intval() floatval() is_string() fonksiyonu Değişken string türünde mi diye bakar. Belirtilen değişken string türündeyse TRUE aksi takdirde FALSE döner. if (is_string("23")) { echo "dizgedir\n"; } else { echo "dizge değildir\n"; } 16

is_int() fonksiyonu Değişken bir tamsayı mı diye bakar. Belirtilen değişkenin değeri tamsayı ise TRUE aksi takdirde FALSE döndürür. if (is_int(23)) { echo "tamsayıdır\n"; } else { echo "tamsayı değildir\n"; } is_float() fonksiyonu Değişken float türünde mi diye bakar. Belirtilen değişken float türündeyse TRUE aksi takdirde FALSE döner. if (is_float(27.25)) { echo "float türünde\n"; } else { echo "float türünde değil\n"; } 17

strval() fonksiyonu Sayısal değişkeni stringe çevirir. $sayi=90; echo gettype($sayi); echo gettype(strval($sayi)); // Bu şekilde de yazılabilir. $sayi=90; echo gettype($sayi); $sayi=strval($sayi); echo gettype($sayi); Ekran çıktısı: integer string intval() fonksiyonu String (alfasayısal) bir değeri sayısal bir değere dönüştürür. $deyim = "42a55bc4t"; //sol başta rakam yoksa sıfır değeri olur. $sayi = intval( $deyim ); echo $sayi; // 42 olacaktır. $deyim=40.9 gibi float olsa sonuc 40 olurdu. 18

floatval() fonksiyonu String (alfasayısal) bir değeri float bir değere dönüştürür. $deyim = "60.34asd"; $sayi = floatval( $deyim ); echo $sayi; // 60.34 olacaktır. PHP de Operatörler (1) + Toplama Operatörü $a=2; $a=$a +2; echo $a; (Sonuç :4) - Çıkarma Operatörü $a=6; $a=$a -3; echo $a; (Sonuç :3) * Çarpma Operatörü $a=4; $a=$a *2; echo $a; (Sonuç :8) / Bölme Operatörü $a=2; $a=$a /2; echo $a; (Sonuç :1) % Mod alma Operatörü (İki sayının bölümünden kalan) $a=8; $a=$a %3; echo $a; (Sonuç :2) 38 19

PHP de Operatörler (2) += operatörünün kullanımı; $a = $a + 1; $a+=1; -= operatörünün kullanımı; $a = $a -1; $a-=1 ; *= operatörünün kullanımı; $a = $a * 2; $a*=2; /= operatörünün kullanımı; $a = $a / 2; $a/=2; 39 PHP de Operatörler (3) ++ Operatörü $a=2; echo ++$a; (Sonuç:3) $a=2; echo $a++; (Sonuç:2) 40 20

PHP de Operatörler (4) -- Operatörü $a=2; echo --$a; (Sonuç:1) $a=2; echo $a--; (Sonuç:2) 41 PHP de Operatörler (5) Atama Operatörü $ad="ali" $a=2; $toplam=$a+$b; 42 21

PHP de Operatörler (6) String Birleştirme Operatörü $ad="ali" $soyad="ak"; $adsoyad=$ad.$soyad; Ekrana AliAk Yazar. 43 PHP de Operatörler (7) Mantıksal Operatörler And Kullanımı: && Or Kullanımı: Not Kullanımı:! Bu operatörler genellikle Şartlı yapılarda kullanılır. Örnekleri şartlı yapılar konusunda verilecektir. 44 22

PHP de Operatörler (8) Karşılaştırma Operatörleri == Eşittir!= Eşit değil < Küçüktür > Büyüktür <= Küçük eşittir >= Büyük eşittir. Bu operatörler de yine bir önceki slaytta belirtildiği gibi karşılaştırma işlemlerinde kullanılır. 45 Toplam.php $sayi1=5; $sayi2=3; $toplam=$sayi1 + $sayi2; echo "Toplam sonucu:".$toplam; Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/toplam.php 46 23

İslem.php $sayi1=5; $sayi2=3; $bolsonuc=$sayi1/$sayi2; $cikarsonuc=$sayi1 - $sayi2; $modsonuc= $sayi1 % $sayi2; $carpsonuc =$sayi1 * $sayi2; printf("bölüm sonucu:%d".$bolsonuc."<br>"); printf("çıkarım sonucu:%d".$cikarsonuc."<br>"); printf("mod sonucu:%d".$modsonuc."<br>"); printf( çarpim sonucu:%d".$carpsonuc."<br>"); Çalıştırmak için Internet Explorer araç çubuğunda http://localhost/islem.php 47 24

Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır. Örneğin verilerin sıralanması, ortalamasının bulunması gibi işlemlerde dizilere ihtiyaç duyulur. Diziler Aynı türden bilgilerin bir değişkenin içerisinde tutulmasıyla oluşturulur. Bir değişkenin dizi olup olmadığı "[]" simgelerinden anlaşılabilir. Kullanılış biçimi : $degisken = array(deger1, deger2,...,degern) veya $değişken[indis_no] = değer şeklindedir. 25

Diziler Bir dizinin n. inci elemanına ulaşmak için dizinin adından sonra köşeli parantez içinde dizi elemanının indis numarası yazılır. Örnek : $degisken[5] = "Ali"; Bu örnekte dizinin 6. elemanına "Ali" değeri atanmıştır. Eğer indis numarası yazılmazsa ilk eleman olan sıfırıncı sıradaki elemana ulaşılır. Daha sonra indis numarası verilmeden ulaşılan eleman bir sonraki eleman olacaktır. Örnek : print ($değişken[]); // Dizinin sıfırıncı elemanı yazılır print ($değişken[]); // Dizinin birinci elemanı yazılır Diziler Diziler tanımlanırken array komutu kullanılmayabilir. $liste = (deger1,deger2,...); veya $liste = array(deger1,deger2,...); veya $liste[] = deger1; $liste[] = deger2; $liste[] = degern; Diziler tanımlanırken indis numarası yerine isim verilebilir. $liste[isim1] = deger1; $liste[isim2] = deger1; 26

Diziler-Tanımlama Örnekleri $meyveler = array("elma", "Armut", "Muz", "Kiraz"); $meyveler = array('bir' => 'Elma', 'iki' => 'Armut', 'üç' => 'Muz'); $meyveler[0] = "Elma"; $meyveler[1] = "Armut"; $meyveler[2] = "Muz"; $meyveler[3] = "Kiraz"; $meyveler['bir'] = 'Elma'; $meyveler['iki'] = 'Armut'; $meyveler['üç'] = 'Muz'; $misafir["isim"] = "Musa"; $misafir["yaş"] = 18; $misafir["il"] = "İstanbul"; Çok boyutlu diziler Dizi içindeki diziler olarak düşünülebilir. Yine bir örnekle açıklamak gerekirse bir otelin katları bir dizi olarak düşünülürse katlardaki odalar da bir dizi olarak düşünülebilir. Dolayısıyla burada dizi içindeki diziler söz konusudur. 27

Çok boyutlu diziler $otel["kat1"]["oda1"]="ali"; $otel["kat1"]["oda2"]="ahmet"; $otel["kat1"]["oda2"]="ömer"; $otel["kat2"]["oda1"]="hasan"; $otel["kat2"]["oda2"]="kenan"; $otel["kat2"]["oda3"]="mert"; $otel["kat3"]["oda1"]="ayşe"; $otel["kat3"]["oda2"]="fatma"; $otel["kat3"]["oda3"]="hatice"; echo $otel["kat2"]["oda3"]; // ekrana Mert yazar Kat1 Kat2 Kat3 Otel Oda1 Ali Oda2 Ahmet Oda3 Ömer Oda1 Hasan Oda2 Kenan Oda3 Mert Oda1 Ayşe Oda2 Fatma Oda3 Hatice Çok boyutlu diziler $otel=array( "kat1"=>array("oda1"=>"ali","oda2"=>"ahmet","oda3"=>"ömer"), "kat2"=>array("oda1"=>"hasan","oda2"=>"kenan","oda3"=>"mert"), "kat3"=>array("oda1"=>"ayşe","oda2"=>"fatma","oda3"=>"hatice") ); echo $otel["kat2"]["oda3"]; // ekrana Mert yazar 28

Çok boyutlu diziler $a = array(); $a['renk'] = 'kırmızı'; $a['lezzet'] = 'tatlı'; $a['şekil'] = 'yuvarlak'; $a['isim'] = 'elma'; Yerine; $a = array( 'renk' => 'kırmızı', 'lezzet' => 'tatlı', 'şekil' => 'yuvarlak', 'isim' => 'elma', ); Dizilerde Kullanılan Fonksiyonlar count(): Bir dizideki eleman sayısını döndürür. Kullanılış biçimi : count($dizi_adi); Örnek : $a[0] = 1; $a[1] = 3; $a[2] = 5; $sonuç = count($a); // $sonuç == 3 29

Dizilerde Kullanılan Fonksiyonlar is_array(): Dizinin elemanına ilk ulaştığımızda değer olup olmadığını araştırır. Başka bir ifadeyle değişkenin dizi olup olmadığının kontrolünü yapar. Kullanılış biçimi : is_array( $dizi_adi ); Örnek : $dizi = array('bu', 'bir', 'dizidir'); echo is_array($dizi)? 'Dizi' : 'Dizi değil'; Dizilerde Kullanılan Fonksiyonlar Foreach: döngü kullanmadan dizi elemanlarına ulaşılmasını sağlar. foreach (dizi_ifadesi as $değer) deyim $dizi = array(1, 2, 3, 4); foreach ($dizi as $deger) { echo "Değer: $deger<br />"; } 30

Dizilerde Kullanılan Fonksiyonlar array_merge(): İki dizinin elamanlarını birleştirerek yeni bir dizi oluşturur. Kullanış biçimi: $yeni_dizi = array_merge ( $ilk_dizi, $ikinci_dizi ); Örnek : $ilk = "Ankara", "İstanbul"; $son = "İzmir", "Adana"; $sonuc = array_merge($ilk, $son); print_r($sonuc); Çıktısı: Array ( [0] => Ankara [1] => İstanbul [2] => İzmir [3] => Adana ) Not: print_r Ekrana bir değişkenin düzgün bir şekilde okunabilecek gösterimini basar. Dizilerde Kullanılan Fonksiyonlar array_push(): Mevcut dizinin sonuna yeni değer ekler. $küme = array("elma", "armut"); array_push($küme, "muz", "portakal"); print_r($küme); Çıktısı: Array ( [0] => elma [1] => armut [2] => muz [3] => portakal ) 31

Dizilerde Kullanılan Fonksiyonlar array_shift(): Dizinin ilk elemanını siler. $harfler = array("a", "b", "c", "d"); array_shift($harfler); print_r($harfler); Çıktısı: Array ( [0] =>b [1] => c [2] => d ) Dizilerde Kullanılan Fonksiyonlar array_unshift(): Dizinin ilk başına yeni değer ekler. $harfler = array("a", "b", "c", "d"); array_unshift($harfler,"e","f"); print_r($harfler); Çıktısı: Array ( [0] => e [1] => f [2] => a [3] => b [4] => c [5] => d ) 32

Dizilerde Kullanılan Fonksiyonlar array_sum(): Dizinin değerlerinin toplamını bulur. $a = array(2, 4, 6, 8); echo "sum(a) = ". array_sum($a). "\n"; $b = array("a" => 1.2, "b" => 2.3, "c" => 3.4); echo "sum(b) = ". array_sum($b). "\n"; Çıktısı: sum(a) = 20 sum(b) = 6.9 Dizilerde Kullanılan Fonksiyonlar in_array: Bir verinin dizi içersinde olup olmadığını kontrol eder. Varsa TRUE yoksa FALSE değeri döndürür. $os = array("mac", "NT", "Irix", "Linux"); if (in_array("irix", $os)) { echo "Irix var"; } if (in_array("mac", $os)) { echo "Mac var"; } 33

Dizilerde Kullanılan Fonksiyonlar array_search(): Bir dizi içerisinde arama yapar. Aranan bilgi bulunursa index numarasını döndürür. Yoksa boş döndürür. $array=array(0=>'blue',1 =>'red',2=>'green',3=>'red'); $key=array_search('green',$array); // $key = 2; echo $key; $key=array_search('red',$array); // $key = 1; echo $key; Dizilerde Kullanılan Fonksiyonlar array_slice(): Dizinin içersinden belirli bir bölümü alır. Kullanımı: array_slice(dizi,başlangıç,adet) $input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // çıktısı: "c", "d", "e" print_r($output); $output = array_slice($input, -2, 1); // çıktısı: "d" print_r($output); $output = array_slice($input, 0, 3); // çıktısı: "a", "b", "c" print_r($output); 34

Dizilerde Kullanılan Fonksiyonlar sort: Dizi elemanlarını küçükten büyüğe sıralar. $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); foreach ($fruits as $key => $val) { echo "fruits[". $key. "] = ". $val. "\n"; } Çıktısı fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange Dizilerde Kullanılan Fonksiyonlar rsort(): Dizi elemanlarını büyükten küçüğe sıralar. $meyveler = array("portakal", "armut", "muz", "kayısı"); rsort($meyveler); foreach ($meyveler as $indis => $meyve) { echo "$indis = $meyve\n"; } Çıktısı 0 = portakal 1 = muz 2 = kayısı 3 = armut 35

Program Kontrol Deyimleri Şarta başlı işlemler; IF-ELSE Yapısı, Switch-Case Yapısı, Döngüler; For, While, Do-while. foreach Kontrol Yapıları <? switch ( $no ) { case 1 ; echo ("1 nolu sınıf"); break; case 2 ; echo ("2 nolu sınıf"); break; default: echo ("3 nolu sınıf"); } <? if($user_name=="") { echo Username girmediniz."; } else if($user_name!="ugur") { echo "Yanlış username"; } else { echo "Merhaba $user_name"; } 36

sart.php $not1=40; $not2=50; if ($not1>$not2) echo "not1 değeri not2 den büyük"; elseif ($not1<$not2) echo "not1 değeri not2 den küçük"; else echo "not1 ve not2 eşit"; sart2.php $yas=18; //yaş değerini 19 ve 30 olarak da deneyin if ($yas<18) echo "siteye girmeniz yasak!"; else echo "Siteye Hoş geldiniz"; 37

Sart3.php $not1=90; (Not1=50, Not2=50 ve Not1=40, Not2=30 olarak deneyin) $not2=40; $ortalama=($not1+$not2)/2; echo Not ortalaması=. $ortalama; if ($ortalama>50) echo geçtiniz ; elseif ($ortalama<50) echo kaldınız ; else echo Sınırdasınız ; sartsayi.php $i=1; if ($i == 0) { echo "i eşit 0"; } elseif ($i == 1) { echo "i eşit 1"; } elseif ($i == 2) { echo "i eşit 2"; } 38

sartmeyve.php $i= portakal ; //elma ve muz olarak de deneyiniz. switch ($i) { case elma": echo "i değeri elma"; break; case portakal": echo "i değeri portakal"; break; case muz": echo "i değeri muz"; break; } Sart5.php switch ($i) { case 0: case 1: case 2: echo i degeri 3 den kucuk ama negatif degil"; break; case 3: echo "i degeri 3"; } 39

Sart6.php $dondurma= sade ; switch($dondurma) { case sade'; case visne'; case limon'; echo iyi secim'; break; default: echo Lutfen yeni bir secim yapiniz...'; break; } Döngüler (For Döngüsü) Döngüler bir işi daha kısa sürede ve daha az kod yazarak halletmemizi sağlayan yapılardır. Bütün programlama dillerinde döngüler vardır. PHP de tıpkı C,Java dillerinde olduğu gibi üç tip döngü çeşidi vardır. For, Do-While ve While döngüleri. Örneğin ekrana 1 den 100 e kadar sayılarıyazmak isteyelim. Döngüler olmasa her sayıyı teker yazmamız gerekir, oysa döngüyle aşağıda görüldüğü gibi birkaç satırda bu işi halledebiliriz. for ($i=1;$i<100;$i++) { printf("$i<br>"); } 40

While Döngüsü $i=1; while ($i<100) { printf("$i<br>"); $i++; } For Örneği 100 den geriye 4 er 4 er yazınız. for ($i=100; $i>1; $i-=4) { printf("$i<br>"); } 41

Do-While Döngüsü $i=1; do { printf("$i<br>"); $i++; }while ($i<100) For ile İşlemler 0,2,4,6,8 100 şeklinde çift sayıları yazdırınız. for ($i=0; $i<=100; $i+=2) printf("$i<br>"); 42

Do-While ile İşlemler 0,2,4,6,8 100 şeklinde çift sayıları yazdırınız. $i=0; do { printf("$i<br>"); $i=$i+2; }while ($i<=100); While ile İşlemler 0,2,4,6,8 100 şeklinde çift sayıları yazdırınız. $i=0; while ($i<=100) { printf("$i<br>"); $i=$i+2; } 43

For ile İşlem 1+3+5 +99 toplamını bulunuz? $toplam=0; for ($i=1;$i<100;$i+=2) $toplam=$toplam + $i; printf("for ile 1 den 100 e kadar Toplam:$toplam<br>"); While ile İşlem 1+3+5 +99 toplamını bulunuz? $toplam=0; $i=1; while ($i<100) { $toplam=$toplam + $i; $i+=2; } printf("while ile 1 den 100 e kadar Toplam:$toplam<br>"); 44

Do-While ile İşlem 1+3+5 +99 toplamını bulunuz? $toplam=0; $i=1; do { $toplam=$toplam + $i; $i+=2; }while ($i<100); printf("do-while ile 1 den 100 e kadar toplam:$toplam<br>"); foreach(): Bir array deki bütün değerleri herhangi bir değişkeni arttırmaya gerek duymadan görüntüler. <? $dersler[] = "Matematik"; $dersler[] = "Türkçe"; $dersler[] = "Bilgisayar"; foreach($dersler as $ders_adi) { echo "$ders_adi <br>"; } 45

Fonksiyonlar Tarih ve Saat Fonksiyonları Matematiksel Fonksiyonlar Karakter Kümesi Fonksiyonları PHP de Fonksiyonlar Fonksiyonlar bizi defalarca kod yazmaktan kurtaran, daha modüler iş yaparak zamandan ve emekten tasarruf sağlayan yapılardır. PHP de fonksiyonların yazım şekli C,C++,Java, JavaScript ile hemen hemen aynıdır. 92 46

PHP de Fonksiyon Tanımlama //Parametresiz function fonksiyon_adi() { } //Parametreli function fonksiyon_adi(parametre1,parametre2, ) { return (donus_degeri); } 93 Fonksiyonlar function yaz() { echo yaz fonksiyonu ; } function yaz2($ad,$soyad) { echo merhaba $ad $soyad ; } Fonksiyonun Çağrılması: yaz(); $isim= Ali ; $soyisim= Ak ; yaz2 ($isim, $soyisim); Yukarıda ilk yaz fonksiyonu parametre almamıştır, ikincisi ise ad ve soyad parametrelerini almıştır. 47

Fonksiyonlar //Parametresiz function yaz() { echo merhaba fonksiyon ; } //Parametreli function mesaj($deger) { echo $deger; } Fonksiyonun Çağrılması: yaz(); $deger= merhaba fonksiyon ; mesaj($deger); Fonksiyonlar - Örnek //Aşağıdaki fonksiyon verilen sayı aralığını toplar. function sayitopla($ilk,$son) { $toplam=0; for ($i=$ilk; $i<=$son ;$i++) { $toplam=$toplam + $i; } return ($toplam); } $num1=100; $num2=500; $sonuc= sayitopla($num1, $num2 ); echo "$num1-$num2 arası toplam =$sonuc"; 48

Fonksiyonlar - İşlemler function topla($a, $b) { return ($a + $b); } function carp($a, $b) { return ($a*$b); } function mod_al($a, $b) { return ($a % $b); } $num1 = 8; $num2 = 3; $sonuctoplam = topla($num1, $num2); $sonuccarpim = carp($num1, $num2); $sonucmod = mod_al($num1, $num2); echo "Toplam sonucu: $sonuctoplam<br>"; echo "Çarpim sonucu: $sonuccarpim<br>"; echo "Mod sonucu: $sonucmod<br>"; Fonksiyonlar Harf Notu Bulma function hesapla($not1, $not2, $not3) { $sonuc = ($not1 + $not2 + $not3)/3; if ($sonuc>84 && $sonuc<=100) $harf='a'; elseif ($sonuc>=70 && $sonuc<=84) $harf='b'; elseif ($sonuc>=55 && $sonuc<=69) $harf='c'; elseif ($sonuc>=45 && $sonuc<=54) $harf='d'; elseif ($sonuc>=0 && $sonuc<=44) $harf='e'; return($harf); } $n1=90; $n2=80; $n3=100; $sonucnot = hesapla($n1, $n2, $n3); echo "$n1-$n2-$n3 Harf notu =$sonucnot"; 49

Fonksiyonlar - Faktöriyel function faktoriyel($sayi) { if ($sayi==0) return(1); $fakt=1; for ($i=1; $i<=$sayi ; $i++) { $fakt= $fakt * $i; } return ($fakt); } $num =6; $sonuc = faktoriyel ($num); echo $sonuc; Dizinin Fonksiyona Gönderilmesi-Örnek <? function liste_yaz($gelendizi) { } for ($i=0;$i<count($gelendizi);$i++) echo $gelendizi[$i]."<br>"; $gelendizi=array(6,8,10,7); liste_yaz($gelendizi); 50

Tarih ve Saat Fonksiyonları Getdate() Date() Time() Mktime() getdate() fonksiyonu Tarih/zaman bilgisi getirir. <? $bugun=getdate(); print $bugun[mday]."-".$bugun[mon]."- ".$bugun[year]; //Bugünkü tarihi yazar 51

Getdate fonksiyonunda kullanılan parametreler "seconds" "minutes" "hours" "mday" "wday" Saniyelerin sayısal gösterimi Dakikaların sayısal gösterimi Saatlerin sayılsal gösterimi Ayın günlerinin sayısal gösterimi Haftanın günlerinin sayılsal gösterimi 0'dan 59'a kadar 0'dan 59'a kadar 0'dan 23'e kadar 1'den 31'e kadar (Pazar için) 0'dan (Cumartesi için) 6'ya kadar "mon" Ayın sayısal gösterimi 1 'den 12'ye kadar "year" "yday" "weekday" "month" Yılın 4 haneli sayısal tam gösterimi Yılın gününün sayısal gösterimi Haftanın gününün metinsel tam gösterimi Ayın metinsel tam gösterimi, Ocak ya da Mart gibi Örnek: 1999 ya da 2003 gibi 0'dan 365'e kadar Sunday'dan Saturday'ye January'dan December'a kadar date() fonksiyonu Yerel tarihi/saati biçimlendirir. biçim karakteri Açıklama Örnek sonuç d D j l (küçük 'L' harfi) N S w Gün --- --- Ay günlerinin sıfır dolgulu iki haneli gösterimi Ay günlerinin üç harfli metinsel gösterimi Ay günlerinin sıfır dolgusuz gösterimi Hafta günlerinin tam metinsel gösterimi Hafta günlerinin ISO-8601 standardında sayısal gösterimi (PHP 5.1.0'da eklenmiştir) Ay günleri için 2 karakterli İngilizce sıralama ekleri Hafta günlerinin sayısal gösterimi 01'den 31'e Pzt'den Paz'a 1'den 31'e Pazar'dan Cumartesi'ye 1'den (Pazartesi için) 7'ye (Pazar için) st, nd, rd ya da th. j ile uyumlu çalışmaktadır. 0'dan (Pazar için) 6'ya (Cumartesi için) z Yılın günleri (0'dan başlar) 0'dan 365'e 52

date() fonksiyonu Hafta --- --- W ISO-8601 standartına göre yılın hafta numarası, hafta başlangıcı Pazartesi'dir Örneğin: 42 (Yılın 42'inci haftası) F m M n Ay --- --- Ayın tam metinsel gösterimi, Ocak ya da Mart gibi Ayın sıfır dolgulu sayısal gösterimi Ayın üç karakterli, metinsel kısa gösterimi Ayın sıfır dolgusuz sayısal gösterimi January'den December'a 01'den 12'ye Jan'dan Dec'e kadar 1'den 12'ye kadar t Belirtilen ayın gün sayısı 28'den 31'e date() fonksiyonu L o Y Yıl --- --- Artık yıl olduğunda ISO-8601 standardı yıl numarası. ISO hafta numaralarının (W) ait olduğu yılın gösterilmesi dışında Y ile aynı değere sahiptir. Yılın 4 haneli sayısal, tam gösterimi Eğer artık yılsa 1, değilse 0. Örnekler: 1999 ya da 2003 gibi Örnekler: 1999 ya da 2003 gibi y Yılın iki haneli gösterimi Örnekler: 99 ya da 03 gibi 53

date() fonksiyonu a A Saat --- --- Küçük harfli öğleden önce ve öğleden sonra Büyük harfli öğleden önce ve öğleden sonra am ya da pm AM ya da PM B Swatch İnternet saati 000'dan 999'a g G h H i s u Saatin, 12-saatlik sıfır dolgusuz gösterimi Saatin, 24-saatlik sıfır dolgusuz gösterimi Saatin, 12-saatlik sıfır dolgulu gösterimi Saatin, 24-saatlik sıfır dolgulu gösterimi Sıfır dolgulu dakika gösterimi Sıfır dolgulu saniye gösterimi Mikrosaniye (PHP 5.2.2 sürümüyle eklenmiştir) 1'den 12'ye 0'dan 23'e 01'den 12'ye 00'dan 23'e 00 ile 59 arasında 00 ile 59 arasında Örneğin: 654321 date() fonksiyonu Zaman dilimi --- --- e I (büyük ı) O P Zaman dilimi belirteci Yaz saati uygulaması var mı? Saat olarak Greenwich zamanı (GMT) farkı Saat ve dakika olarak Greenwich zamanı (GMT) farkı Örnekler: UTC, GMT, Europe/Istanbul Varsa 1, yoksa 0. Örneğin: +0200 Örneğin: +02:00 T Zaman dilimi kısaltması Örnekler: EST, EET gibi Z Saniye cinsinden saat farkı. UTC'nin batısı daima negatif, doğusu ise daima pozitif değerlidir. -43200'den 50400'e 54

date() fonksiyonu <? print date("d-m-y"); //13-03-2011 gibi sistem tarihini yazar. time() fonksiyonu Sunucunun o anki zaman bilgisini saniye olarak döndürür. (1 Ocak 1970 den başlayarak) $gelecekhafta = time() + (7 * 24 * 60 * 60); // 7 gün; 24 saat; 60 dakida; 60 saniye echo 'Şimdi: '. date('d-m-y')."\n"; echo 'Gelecek Hafta: '. date('d-m- Y', $gelecekhafta)."\n"; 55

mktime() fonksiyonu mktime() fonksiyonu, kendisine verilen verilen tarih ile 1 Ocak 1970 arasındaki farkı hesaplar. Örnek olarak 1 Ocak 1970 ile 22 Kasım 2008 saat 08:00 arasındaki farkı şu şekilde bir sayı ile geri döndürür: 1227340850 Burda görüldüğü üzere 1 Ocak 1970den bu yana ne kadar saniye geçtiğidir! mktime() fonksiyonu Genel kullanımı; $saat = 08; $dakika = 0; saniye = 0; $ay = 11; $gun = 22; $yil = 2008; $sonuc = mktime($saat, $dakika, $saniye, $ay, $gun, $yil); echo $sonuc; //1227340850 56

mktime() fonksiyonu echo date("m-d-y", mktime(0, 0, 0, 12, 32, 1997)); echo date("m-d-y", mktime(0, 0, 0, 13, 1, 1997)); echo date("m-d-y", mktime(0, 0, 0, 1, 1, 1998)); echo date("m-d-y", mktime(0, 0, 0, 1, 1, 98)); "Jan-01-1998" tarihini yazar. Matematiksel Fonksiyonlar floor() ceil() round() pow() sqrt() max() min() 57

floor() fonksiyonu Ondalık sayıların küçük sayıya yuvarlanması için kullanılır. echo floor(4.3); // 4 echo floor(9.999); // 9 echo floor(-3.14); // -4 ceil() fonksiyonu Ondalık sayıların büyük sayıya yuvarlanması için kullanılır. echo ceil(4.3); // 5 echo ceil(9.999); // 10 echo ceil(-3.14); // -3 58

round() fonksiyonu Ondalık sayıların yuvarlanması için kullanılır. Kullanım Şekli round(yuvarlanacak sayı,noktadan sonra kaç basamak kullanılacak) echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 pow() fonksiyonu Bir sayının üstel değerlerini bulmak için kullanılır. Kullanım Şekli pow(sayı,kuvvet değeri) echo pow(2, 8); // 256 echo pow(-1, 20); // 1 echo pow(0, 0); // 1 59

max() fonksiyonu Verilen değerler içinde en büyüğünü bulur echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5 // Farklı arraylarda uzun olanı bulur $val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1) // Aynı uzunluktaki arraylarde elemanlarına bakılır. Örnek: 2 == 2, fakat 4 < 5 $val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7) min() fonksiyonu Verilen değerler içinde en küçük olanı bulur. echo min(2, 3, 1, 6, 7); // 1 echo min(array(2, 4, 5)); // 2 60

Karakter Kümesi Fonksiyonları explode() ltrim() rtrim() trim() number_format() printf() sprintf() str_pad() str_repeat() str_replace() strcmp() strlen() strtolower() strtoupper() substr() substr_replace() wordwrap() explode() fonksiyonu Bir dizgeyi bir ayraca göre bölüp bir dizi haline getirir. $pizza = "dilim1 dilim2 dilim3 dilim4 dilim5 dilim6"; $dilimler = explode(" ", $pizza); echo $dilimler[0]; // dilim1 echo $dilimler[1]; // dilim2 61

ltrim() fonksiyonu Dizgenin başındaki boşlukları (veya diğer karakterleri) budar. Aşağıdaki karakterleri budar. " " (ASCII 32 (0x20)), sıradan boşluk. "\t" (ASCII 9 (0x09)), sekme. "\n" (ASCII 10 (0x0A)), satırsonu. "\r" (ASCII 13 (0x0D)), satırbaşı. "\0" (ASCII 0 (0x00)), NUL-bayt. "\x0b" (ASCII 11 (0x0B)), dikey sekme. $metin = "\t\tbir kaç kelam :)... "; print "\n"; $kirpik = ltrim($metin); echo $kirpik $kirpik = ltrim($metin, " \t."); echo $kirpik; rtrim() fonksiyonu Dizgenin sonundaki boşlukları (veya diğer karakterleri) budar. Aşağıdaki karakterleri budar. " " (ASCII 32 (0x20)), sıradan boşluk. "\t" (ASCII 9 (0x09)), sekme. "\n" (ASCII 10 (0x0A)), satırsonu. "\r" (ASCII 13 (0x0D)), satırbaşı. "\0" (ASCII 0 (0x00)), NUL-bayt. "\x0b" (ASCII 11 (0x0B)), dikey sekme. $metin="bir kaç kelam :)... "; echo rtrim($metin); 62

trim() fonksiyonu Dizgenin başındaki ve sonundaki boşlukları (veya diğer karakterleri) budar. Aşağıdaki karakterleri budayacaktır. " " (ASCII 32 (0x20)), sıradan boşluk. "\t" (ASCII 9 (0x09)), sekme. "\n" (ASCII 10 (0x0A)), satırsonu. "\r" (ASCII 13 (0x0D)), satırbaşı. "\0" (ASCII 0 (0x00)), NUL-bayt. "\x0b" (ASCII 11 (0x0B)), dikey sekme. $metin=" Bir kaç kelam :)... "; echo trim($metin); number_format() Sayıyı binlik bölümlere ayırır. Kullanımı: number_format (sayı, ondalık_hane, ondalık_ayracı, binlik_ayracı ) $sayi = 1234.56; $trformat = number_format($sayi, 2, ',', '.'); echo $trformat; // 1.234,56 63

printf() fonksiyonu Biçimli bir dizgi çıkartır. $num=1000; $kelime="emyo"; printf('sayı:%d',$num); printf('sayı:%s',$kelime); sprintf() fonksiyonu Biçimli bir dizge çıkartır. $num=1000; $kelime="emyo"; echo sprintf('sayı:%d',$num); echo sprintf('sayı:%s',$kelime); 64

str_pad fonksiyonu Bir dizgeyi belli bir uzunlukta diğer dizgeyle doldurur. Kullanımı: str_pad (girdi, dolgulu_uzunluk [, dolgu_dizgesi = " " [, dolgu_türü = STR_PAD_RIGHT ]] ) dolgu_türü: Seçimlik dolgu_türü olarak STR_PAD_RIGHT (sağ), STR_PAD_LEFT (sol) veya STR_PAD_BOTH sabiti (her iki taraf) belirtilebilir. dolgu_türü belirtilmezse STR_PAD_RIGHT değeri öntanımlıdır. str_pad fonksiyonu-örnek $input = "Ayran"; echo str_pad($input, 10); // "Ayran " üretilir echo str_pad($input, 10, "-=", STR_PAD_LEFT); // "-=-=-Ayran" üretilir echo str_pad($input, 10, "_", STR_PAD_BOTH); // " Ayran " üretilir echo str_pad($input, 6, " "); // "Ayran_" üretilir 65

str_repeat fonksiyonu Bir dizgeyi yineler. echo str_repeat("-=", 10); Çıktısı: -=-=-=-=-=-=-=-=-=-= str_replace fonksiyonu str_replace() fonksiyonu istediğimiz karakterleri farklı bir karaktere dönüştürmemizi sağlar. Kullanımı: str_replace(bul, değiştir, değişken) $veri = "İstanbul güzel bir şehir?"; echo str_replace("güzel","pahalı",$veri); 66

strcmp() fonksiyonu İkili olarak dizge karşılaştırması yapar. $isim1="ali"; $isim2="ahmet"; if(strcmp($isim1,$isim2)==0) print "iki isim aynıdır"; elseif(strcmp($isim1,$isim2)>0) print "Birinci isim büyük"; else print "ikinci isim büyük"; strlen() fonksiyonu Dizge uzunluğunu döndürür. $str = 'abcdef'; echo strlen($str); // 6 $str = ' ab cd '; echo strlen($str); // 7 67

strtolower fonksiyonu Bir dizgenin harflerini küçük harfe çevirir. $str = "Mini MİNİ bir KUŞ uçmuştu PENCEREME konmuştu."; $str = strtolower($str); echo $str; // Çıktı: mini mini bir kuş uçmuştu pencereme konmuştu. strtoupper Bir dizgenin harflerini büyük harfe çevirir. $str = "Mini MİNİ bir KUŞ uçmuştu PENCEREME konmuştu."; $str = strtoupper($str); echo $str; // Çıktısı: MINI MINI BIR KUS UÇMUSTU PENCEREME KONMUSTU. 68

substr() fonksiyonu Dizgenin bir kısmını döndürür. Kullanımı: substr (dizge, başlangıç [, uzunluk ] ) echo substr('abcdef', 1); // bcdef döndürür. echo substr('abcdef', 1, 3); // bcd döndürür. echo substr("abcdef", -1); // "f" döndürür. echo substr("abcdef", -2); // "ef" döndürür. echo substr("abcdef", -3, 1); // "d" döndürür. substr_replace() fonksiyonu Bir dizgenin belli bir bölümünü değiştirir. Kullanımı: substr_replace (dizge, yenisi, başlangıç [, uzunluk ] ) <? $metin = "En Faydalı Türkçe Kaynak"; echo substr_replace($metin, 'Yararlı', 3,7); //En Yararlı Türkçe Kaynak 69

wordwrap() fonksiyonu Bir dizgeyi istenilen yerden alt satıra geçirir. Kullanımı: wordwrap ( dizge [, genişlik [, satırsonu [, kes = false/true ]]] ) $metin = "Dağ başını duman almış, gümüş dere durmaz ak ar."; $yenisi = wordwrap($metin, 4, "<br />"); echo $yenisi; wordwrap($metin, 4, "<br />",true ); Yukarıdaki gibi sona true eklersek kelimelere dikkate almadan böler. Server Fonksiyonları echo $_SERVER['SERVER_ADDR']; Sunucunun IP adresi alınır. echo $_SERVER['SERVER_NAME']; Sunucu ismi öğrenilir. echo $_SERVER['SERVER_SOFTWARE']; Sunucunun işletim sistemi öğrenilir. 70

Server Fonksiyonları echo $_SERVER['QUERY_STRING']; adres çubuğundaki querystringler alınır. Örnek adres cubuğunuzdaki adresin sonuna localhost/deneme.php?degisken1 yazdığınızda çıktı degisken1 olacak Server Fonksiyonları echo $_SERVER['DOCUMENT_ROOT']; Php dosyalarının çalıştığı klasörün adı //localhost çıktısı C:/wamp/www/ echo $_SERVER['HTTP_USER_AGENT']; Ziyaretçinin tarayıcısıyla ilgili bilgiler öğrenilir. 71

Server Fonksiyonları echo $_SERVER['REMOTE_ADDR']; Ziyaretçinin ip adresini alır. echo $_SERVER['SERVER_PORT']; Severin portu öğrenilir. echo $_SERVER['SCRIPT_NAME']; Çalışan dosyanın adı öğrenilir. 72

Php Yardımıyla mail gönderme Mail() Fonksiyonu: PHP'de Mail göndermemize yarayan fonksiyondur. Kullanımı aşağıdaki gibidir. mail ( "mailadresi", "mailkonusu", "mailiçeriği", "Mailbaşlık" ) mailadresi kısmı;mail yollanacak Kişi mailkonusu;mailin konusu mailiçeriği;mailin içeriği Mailbaşlık;Mail başlığı Php Yardımıyla mail gönderme Bir mailin php ile yollanması aşağıdaki gibidir. <? $adres = "deneme@hotmail.com"; $konu = "Mail konusu"; $mesaj = "PHP Mail() Fonksiyonu"; mail("$adres","$konu","$mesaj"); echo "mail gönderildi"; 73

Form elemanları Formdan veri gönderme Veri alma Form İşlemleri Bütün programlama dillerinde kullanıcının girmiş olduğu bilgiler üzerinde işlem yapılır. Php'de kullanıcı tarafından bilgileri alabilmek için formlar kullanılır. Örnek olarak ziyaretçi defteri, kayıt formu,anket vs.. diğer işlemlerde formlar kullanılır. Form elemanları sayfa içerisine HTML yardımıyla yerleştirilir ama içerikleri HTML yardımıyla okunamaz. Bu form elemanları üzerinde javascript yardımıyla çeşitli kontroller sağlanabilir ama bilgiyi sunucuya gönderemez. Formdan alınan bilgiler sunucuya gönderilecekse PHP gibi dinamik bir dil kullanımı zorunludur. 74

Form Elemanları form input textarea select <form> etiketi Formlar yoluyla ziyaretçiden bilgi alabilir, aldığımız bilgi doğrultusunda birçok işlemi gerçekleştirebiliriz. Bir form <form> </form> etiketleri ile yazılır. Form etiketi yardımcı elemanları Girilecek Kod action = "dosya ismi" method = "yöntem" Görevi Formdan girilecek bilgilerin değerlendirileceği dosyanın tam yolu. Formdan girilecek bilgilerin değerlendirici dosyaya gönderilme yöntemi 75

<input> etiketi Genel amaçlı bir form etiketidir. Sonlandırıcı etiketi yoktur. Girdi türü type öğesinde belirtilerek farklı girdilerin alınmasını sağlar. <input> etiketi type = "eleman türü" name = "isim" value = "değer" size = "değer" maxlength = "değer" checked = "değer" src = "dosya ismi" alt = "metin" align = "left center right" readonly disabled Eleman türü belirtilir. text, password, checkbox, radio, submit, reset, file, hidden, image, button değerlerinden biri kullanılır. Etiketin bu değerlerle nasıl kullanıldığını aşağıda örnekleriyle açıklamaya çalıştım. Girilen verinin hangi değişken ismi altında değerlendirileceğini belirtmek için kullanılır. Mutlaka belirtilmelidir. "radio" ve "checkbox" dışında bu parametrenin kullanımı isteğe bağlıdır. Belirtilecek "değer" eleman türüne göre değişir. "text" ve "password" elemanlarında karakter sayısını, diğerlerinde ise piksel cinsinden genişliği belirtmek için kullanılır. "text" ve "password" elemanlarında girilebilecek en çok karakter sayısını belirtmek için kullanılır. Öntanımlı değeri sınırsızdır. Sadece "radio" ve "checkbox" elemanlarında seçili elemanı "on" olarak belirtmek için kullanılır. Diğerlerinde yoksayılır. "image" elemanında resim dosyasını belirtmek için kullanılır. Fare eleman üzerindeyken balon içinde görünecek açıklama metni için kullanılır. Elemanın form üzerinde nasıl konumlanacağını belirtmek için kullanılır. Veri girme amacıyla kullanılmayacak elemanlar içindir. Veri girişi engellenecek elemanlar içindir. 76

<input> etiketi type parametresi ile aşağıdaki elemanlar tanımlanabilir. Text Password Checkbox Radio Submit Reset Button text Forma tek satırlık yazı yazılabilecek alan eklemek için kullanılır. Adı: <input type="text" name="firstname"><br> Soyadı: <input type="text" name="lastname"> 77

password Forma parola yazılabilecek alan eklemek için kullanılır. "text" elemanından farklı olarak bu alana girilen her karakter * ile gösterilir. Kullanıcı: <input type="text" name="username"><br> Parola: <input type="password" name="password"> checkbox Forma onay kutuları eklemek için kullanılır. <input type="checkbox" name="kutu1" checked="on"> HTML<br> <input type="checkbox" name="kutu2"> PHP<br> <input type="checkbox" name="kutu3"> MySQL 78

radio Forma radyo düğmeleri eklemek için kullanılır. <input type="radio" name="cinsiyet" value="erkek" checked="on"> Erkek<br> <input type="radio" name="cinsiyet" value="disi"> Dişi submit, reset, button Formda belirtilen bilgileri ilgili dosyaya yollamak için kullanılacak düğmeler yerleştirmek için kullanılır. submit formu kabul eder ve yollar, reset ise girilen bilgileri sıfırlar(siler). button herhangi bir amaçla kullanmak içindir. Diğer ikisi gibi öntanımlı bir davranışı yoktur. 79

submit, reset, button Adınız: <input type="text" name="firstname"><br> Soyadınız: <input type="text" name="lastname"><br> Eposta adresiniz: <input type="text" name="email"><br> <input type="radio" name="cinsiyet" value="erkek" checked="on"> Erkek<br> <input type="radio" name="cinsiyet" value="disi"> Dişi<br> <input type="submit" value="send"> <input type="reset" value="sıfırla"> Düğmeye resim ekleme <button name="reset" type="reset" value="reset"> <img width="20" height="21" src="resim.jpg"/>sıfırla </button> <textarea> etiketi İngilizce metin alanı anlamına gelen bu kelime forma yazı yazılabilecek alan eklemek için kullanılır. Yardımcı öğeler olarak rows ve cols kullanılır. 80

<select> etiketi Seçim listesi oluşturmakta kullanılır. <option> etiketi ile liste öğeleri belirtilir. <optgroup> etiketi ise bu liste elemanlarını konularına göre gruplamakta kullanılır. Bir select etiketi en azından bir option etiketi içermeli ve optgroup etiketleri iç içe olmamalıdır. Tek veya çok seçimli (multiple parametresi ile), sabit (size parametresi ile) veya aşağıya açılan listeler oluşturulabilir. <select> etiketi <select name="os_type"> <option value="win">windows 9x</option> <option value="winnt">windows NT</option> <option value="linux">linux</option> <option value="unix">unix</option> <option value="os2">os/2</option> <option value="macos">macos</option> </select> 81

<select> etiketi <select name="menu" multiple> <option selected="" value="none">hiçbiri</option> <optgroup label="çorbalar"> <option value="c1">tarhana</option> <option value="c2">ezogelin</option> <option value="c3">işkembe</option> </optgroup> <optgroup label="yemekler"> <option value="y1">imambayıldı</option> <option value="y2">sultanbeğendi</option> <option value="y3">kadınbudu</option> </optgroup> <optgroup label="tatlılar"> <option value="t1">kazandibi</option> <option value="t2">tavukgöğsü</option> <option value="t3">keşkül</option> </optgroup> </select> Formdan Veri Gönderme Formdan veri göndermek için method parametresi kullanılır. Method parametresi iki değer alır GET ve POST <form action="test.php" method="get">... </form> <form action="test.php" method="post">... </form> 82

Get metoduyla bilgi gönderme GET metodunda formlara girilen bilgiler adres çubuğunda gönderilirken görünürler. Formlara girilen bilgiler, sayfa adresinin sonuna şu şekilde eklenir. http://www.site.com/sayfa.php?form1=değer1&form2= değer2&... Burada form1, form2,... ile gösterilen ifadeler sayfada formlara verilen isimler yani name değerleridir. değer1, değer2,... ise kullanıcının bu formlara girdiği değerleri ifade etmektedir. Dikkat ederseniz tüm bunlar sayfa adresinden? ile ayrılmaktadır, her form ve değerinin arasında & işareti bulunmaktadır. Get metoduyla bilgi gönderme Bu yöntemde; Gönderilen bilgiler adres çubuğunda göründüğü için güvenlik düşüktür. Özellikle şifre girişlerinde kullanılmamalıdır. Adres çubuğundan gönderilebilecek veri miktarı sınırlı olduğunda fazla miktardaki veriler gönderilemez. 83

Get metoduyla bilgi alma <form>...</form> etiketinin action özelliğinde belirtilen sayfada GET metoduyla yani URL'ye eklenerek gönderilen değişkeleri almak için $_GET dizisi kullanılır. $_GET dizisinde indis olarak değişken adları yada form adları kullanılır. Örneğin; http://www.site.com/index.php?konu=selam&mesaj=merhaba şeklinde GET ile gönderilen konu ve mesaj bilgilerini şu şekilde alırız. $gelen_konu=$_get["konu"]; $gelen_mesaj=$_get["mesaj"]; Örnek GET metodu ile gönderilen ad ve soyad bilgilerini alıp ekrana yazdıralım. 84

Örnek Devam <!--index.php--> <html> <body> <form name="form1" method="get" action="yaz.php"> Adı: <input type="text" name="adi"><br> Soyadı: <input type="text" name="soyadi"><br> <input type="submit" name="gönder" value="gönder"> </form> </body> </html> Örnek Devam <!--yaz.php--> <html> <body> echo "<b>adınız:</b> ",$_GET["adi"],"<br>"; echo "<b>soyadınız:</b> ",$_GET["soyadi"],"<br>"; </body> </html> 85

Örneğin Açıklaması Burada iki sayfamız vardır. İlk sayfamız olan index.php sayfasında formlarımız var. Bu formlara girilen bilgilerin yaz.php sayfasına gönderileceği action="yaz.php" ile belirtilmiştir. method="get" ifadesiyle bilgilerin GET metodu ile gönderileceği belirtilmiştir. Unutmayınız form yapılarında çoğu zaman POST metodu kullanılır. GET metodu pek kullanılmaz. Burada sadece GET metodu ile bilgi göndermeye ve almaya örnek vermekteyiz. Bilindiği gibi GET metodu daha çok <a>...</a> etiketi ile oluşturulan linkler ile bilgi göndermede kullanılır. İkinci sayfamız olan yaz.php sayfasında formlardan gelen bilgiler alınıyor. Daha sonra sayfaya yazdırılması için echo fonksiyonuna veriliyor. Bu bilgileri değişkenlere atayarak da işlem yapabilirsiniz. Not: index.php ile yaz.php sayfalarının aynı dizinde olduğu kabul edilerek action kısmında yaz.php sayfasının yolu belirtilmemiştir. Aksi halde dosyanın tam yolu yada göreceli yolu yazılmalıdır. Örnek2 Rastgele üretilen iki sayıyı yaz.php sayfasına bir link ile (GET metodu ile) gönderip ekrana yazdıralım. 86

Örnek2 (Devam) <!--index.php--> <html> <body> $s1=rand(1,100); $s2=rand(1,100); echo "<b>bulunan sayılar:</b><br>"; echo "Sayı 1=$s1<br>Sayı 2=$s2<br>"; echo "<a href='yaz.php?sayi1=$s1&sayi2=$s2'>bu linke tıklayarak sayıları gönderebilirsiniz</a>"; </body> </html> Örnek2 Devam <!--yaz.php--> <html> <body> echo "<b>sayı 1:</b> ",$_GET["sayi1"],"<br>"; echo "<b>sayı 2:</b> ",$_GET["sayi2"],"<br>"; </body> </html> 87

Post metoduyla bilgi gönderme Bu metodda formlara girilen bilgiler gönderilirken görünmemektedir. Bundan dolayı daha güvenilir. Ayrıca büyük miktardaki veriler de bu yöntemle gönderilmektedir. Örneğin dosya yüklemede kullanılan ve fazla miktarda verilerin bulunduğu formlarda POST metodu kullanılmaktadır. Post metoduyla bilgi gönderme HTML dosyası: <form action="yaz.php" method="post"> Adınız : <input type="text" name="adiniz"> <br> Soyadınız : <input type="text" name="soyadiniz"> <br> <input type="submit" value="gönder"> <form/> $adi = $_POST[adiniz]; Yaz.php $soyad = $_POST[soyadiniz]; echo $adi."<br>"; echo $soyad."<br>"; Formlardan POST metodu ile gönderilen bilgileri almak için $_POST dizisi kullanılır. 88

Örnek Formlara girilen iki sayının toplamını topla.php sayfasında ekrana yazdıralım. (Örnek çalışmada Metin Kutusu + Gönder Düğmesi kullanınız.) Örnek Devam <!--index.php--> <html> <body> <form name="form1" method="post" action="topla.php"> Birinci Sayı: <input type="text" name="sayi1"><br> İkinci Sayı: <input type="text" name="sayi2"><br> <input type="submit" name="topla" value="topla"> </form> </body> </html> 89

Örnek Devam <!--topla.php--> <html> <body> $s1=$_post["sayi1"]; $s2=$_post["sayi2"]; $toplam=$s1+$s2; echo "Sayıların toplamı: $s1+$s2=$toplam"; </body> </html> Örnek2 Kullanıcının girdiği iki sayıyı yine kullanıcının açılır listeden seçtiği işleme göre hesapla.php sayfasında işleme alıp sonucu ekranda gösterelim. (Örnekte Metin Kutusu + Açılır Liste + Gönder Düğmesi kullanınız.) 90

Örnek2 Devam <!--index.php--> <html> <body> <form name="form1" method="post" action="hesapla.php"> Birinci Sayı: <input type="text" name="sayi1"><br> İkinci Sayı: <input type="text" name="sayi2"><br> İşleminizi seçiniz: <select name="islem"> <option value="+">topla</option> <option value="-">çıkar</option> <option value="*">çarp</option> <option value="/">böl</option> </select> <input type="submit" name="hesapla" value="hesapla"> </form> </body> </html> Örnek2 Devam <!--hesapla.php--> <html> <body> $s1=$_post["sayi1"]; $s2=$_post["sayi2"]; $islem=$_post["islem"]; // Bu kısımda switch-case yapısı da kullanılabilirdi. if($islem=="+") $sonuc=$s1+$s2; elseif($islem=="-") $sonuc=$s1-$s2; elseif($islem=="*") $sonuc=$s1*$s2; else $sonuc=$s1/$s2; echo "İşlemin Sonucu:<br>$s1$islem$s2=$sonuc"; </body> </html> 91

Örnek3 Kullanıcının girmiş olduğu kullanıcı adı ve şifreye göre giris.php sayfasında giriş izni veren yada vermeyen php kodunu yazalım. (Örnekte Metin Kutusu + Şifre Kutusu + Gönder Düğmesi kullanınız.) Örnek3 Devam <!--index.php--> <html> <body> <form name="form1" method="post" action="giris.php"> Kullanıcı Adınız: <input type="text" name="k_adi"><br> Şifreniz:<input type="password" name="sifre"><br> <input type="submit" name="giris" value="giriş"> </form> </body> </html> 92

Örnek3 Devam <!--giris.php--> <html> <body> // İstenen kullanıcı adını ve şifreyi sabit değişkenler olarak tanımlayalım. define("username","emyo"); define("password","au"); if($_post["k_adi"]==username and $_POST["sifre"]==password) echo "Giriş izni verildi. Hoşgeldiniz."; else{ echo "Kullanıcı adını yada şifreyi yanlış girdiniz. Tekrar deneyiniz!<br>"; echo "<a href='index.php'>geri</a>"; } </body> </html> 93

Çerez Kullanımı Girilen sitelerin tarayıcılar(browserlar) üzerinde bıraktığı izlere cookie, Türkçesiyle de çerez denir. Bu izler siteye tekrar ziyaret edildiğinde yeniden gönderilerek bazı şeylerin yeniden hatırlanmasını sağlar. Mesela giriş formlarında kullanıcının şifresini ve kullanıcı adını cookieler sayesinde tarayıcıya kaydederek bir sonraki gelişinde bilgilerini yeniden girmek zorunda kalmadan direkt giriş yapabilir. Temel olarak kullanıcı bilgilerini hatırlanmasında kullanılan çerezleri hayal gücünüzün el verdiği kadar bir çok alanda da kullanmak mümkün. Cookie Oluşturma Cookie oluşturma işlemi setcookie() fonksiyonu ile yapılır. Genel kullanımı şöyledir; setcookie("isim", "değer","zaman aşımı"); 94

Cookie Oluşturma setcookie("çerezim", "selam dünya"); Yukarıdaki örnekte çerezim adında bir cookie oluşturduk ve değerinide selam dünya yaptık. Ve 3. parametre olarak hiç bir şey girmediğimiz için varsayılan olarak tarayıcı kapatıldığında çerez silinecek. Cookie Oluşturma Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 3. parametreyi devreye sokacağız. setcookie("çerezim", "selam dünya", time() + (60*60*24)); Şimdi 3. olarak girdiğimiz time() + (60*60*24) bu parametre şu anki zamana saniye cinsinden 60*60*24 tam olarak 24 saat yani 1 gün eklemiş olduk. Bu oluşturduğumuz çerezin son kullanma tarihi şuandan itibaren + 24 saat sonra demek oluyor. 1 gün sonrasında bu çerez siteye girildiğinde gönderilmiyor olacak. 95

Cookie Okuma Oluşturulmuş cookie yi görüntülemek için $_COOKIE komutu kullanılır. Kullanımı şu şekildedir: echo $_COOKIE["çerez adı"]; Cookie Oluşturma ve Okuma Alttaki örnekte setcookie komutu ile emyo isimli bir cookie oluşturduk. Cookie nin değerini 1234 olarak tanımladık. Zaman aşımı olarak time() fonksiyonunu kullandık ve 3600 sn. yani 1 saat geçerli olacak şekilde belirttik. Son olarak echo komutu ile emyo isimli cookie nin değerini ekrana yazdırdık. Bu örneği test ettiğimizde ekrandaki çıktı 1234 olacaktır. setcookie("emyo","1234",time()+3600); echo $_COOKIE["emyo"]; Bu değişkenler internet explorer tarayıcısında şu klasörde C:/Documents and Settings/isminiz/Cookies içerisinde bir yazı dosyasında tutulur. 96

Cookie Silme Oluşturduğumuz bir çerezi silmek için yine normal bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz. Tek fark 3. son kullanma tarihi paramtremize geçmiş bir zaman giriyoruz. Bu sayede çerezin tarihi dolmuş varsayılıp hemen siliniyor. Örnek olarak bu çereze time() 3600 diyerek 1 saat öncesini göstereceğiz ve çerez silinmiş olacak: setcookie("çerezim", "selam dünya", time() - 3600); Cookie Değerini Değiştirme Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekte de setcookie() fonksiyonunu kullanıyoruz. Ve oluşturmakta olduğu gibi değerini değiştirmekte aynıdır. Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli. Eğer çerez yoksa oluşturulur varsa değeri değiştirilir. setcookie("çerezim", "selam dünya"); setcookie("çerezim", "merhaba dünya"); echo $_COOKIE['çerezim']; 97

Cookie Kontrolü Cookie nin tanımlı olup olmadığını kontrol etmek için isset() fonksiyonunu kullanabilirsiniz. if(isset($_cookie["çerezim"])) { echo "cookie tanımlanmış"; } else { echo "cookie tanımlanmamış!"; } 98

Oturum Yönetimi Internet üzerinde SESSION olarak bildiğimiz terimin Türkçe karışılığı oturumdur. Siz, kullanıcı olarak bir web sitesine girdiğinizde, o domain üzerinde sizin için bir oturum açılmış olur. Oturumun açıldığı sayfadan itibaren sizin bir session id'niz yani oturum numaranız olur ve sunucu sizi bu numara ile tanır. Sitenin programatik altyapısını hazırlayan kişi de sizin siteye verdiğiniz bazı bilgileri session'a kaydederek bu bilgileri sayfalar arasında aktarır. Buna en güzel örnek olarak bu sitedeki kullanıcı adını gösterebiliriz. Gördüğünüz gibi her sayafada sağ üstte kullanıcı adınız session yardımıyla sayfalara taşı ve sitenin üyesi olarak bu sayede işlem yaparsınız. Session için yapabileceğimiz 3 işlem var. 1- Session'ı başlatmak 2- Session kaydetmek 3- Session'ı bitirmek Session oluşturma Session kullanımına ya da oluşturulmasına başlamadan önce bir kere her sayfanın en başında session_start() fonksiyonunu yazmalıyız, bu fonksiyon session olayını kullanıma hazırlar ve olmazsa olmazdır. Bazı sunucularda session kullanımı otomatik olarak hep açıktır, açık olan sunucularda session_start() yazmaya çalışırsanız hata verir. Bu durumda bu fonksiyonu kullanmaya gerek yoktur. 99

Session_start() session_start() ; $_SESSION['mesaj'] = 'Selam dünya!'; Yukarıda ilk önce session kullanımını başlattık ve ardından aynı bir dizi tanımlarmış gibi $_SESSION global dizisine mesaj anahtarına Selam dünya! değerini verdik. Yani mesaj adında bir session oluşturduk ve değerini Selam dünya! yaptık. Bu oluşturduğumuz değer giren kişinin tarayıcısı kapatılmadığı sürece gezdiği her sayfaya tekrar geri gönderilecek ve bir önceki sayfada yaptığı işlemleri, kullanıcı adı ya da şifre gibi verileri bu şekilde yeniden hatırlanmasını sağlayacak. Session silme Session silme işleminde unset() fonksiyonunu kullanıyoruz. session_start(); $_SESSION['gezegen'] = 'dünya'; unset($_session['gezegen']); Yukarıda önce bir session oluşturduk ve hemen ardından da onu sildik. 100

Tüm sessionları silmek Bu işlem için session_destroy() fonksiyonunu kullanılır. Bu fonksiyon tanımlanmış tüm sessionları yok eder. session_start(); session_destroy(); Session var mı diye kontrol etmek Yine diğer çalışmalarda varlığını kontrol etmekte kullandığımız isset() fonksiyonunu kullanacağız. Bu fonksiyon eğer içine yazdığımız session varsa olumlu yoksa olumsuz döner. session_start(); echo isset($_session['deneme']); 101

Örnek Öncelikle ilk.php adında bir php dosyası oluşturalım ve içinde bir session oluşturup bir başka php sayfasında o veriyi okutmayı deneyelim. İlk.php session_start(); $_SESSION['isim'] = 'emyo'; echo 'Sessionumuzu oluşturduk.'; Örnek-Devam Bu sayfayı oluşturup çalıştırdıktan sonra 2. php sayfamızıda yapalım. Bunun adıda son.php olsun Son.php session_start(); echo 'Daha önceden kaydedilmiş isim: '. $_SESSION['isim']; ilk.php yi ziyaret ettikten sonra bu sayfaya geldiğimizde ekranda Daha önceden kaydedilmiş isim: emyo yazacaktır. Eğer ilk.php ye uğramadan yani sessionumuzu oluşturmadan son.php ye girmeye çalışırsak böyle bir session oluşturulmadığı için kod hata verecektir. 102

Örnek Üyelik Sistemi Giriş bilgilerini içinde tutacağımız ayarlar.php dosyamızı oluşturuyoruz. Ayarlar.php $kullanici = "admin"; $parola = "1234"; Örnek Üyelik Sistemi Şimdi de ziyaretçinin giriş yapacağı index.php dosyamızı oluşturalım. Ziyaretçi bu sayfadan giriş yapacak. <form action="denetim.php" method="post"> Kullanıcı Adı: <input type="text" name="kullanici"><br /> Parola: <input type="password" name="parola"><br /> <input type="submit" value="giriş Yap"> </form> 103

Örnek Üyelik Sistemi Şimdi de giriş bilgilerinin denetleneceği ve sonucuna göre işlem yapacağımız denetim.php dosyasını oluşturuyoruz. include("ayarlar.php"); session_start(); if(($_post["kullanici"]==$kullanici) and ($_POST["parola"]==$parola)) { $_SESSION["giris"] = true; $_SESSION["kullanici"] = $kullanici; $_SESSION["parola"] = $parola; header("location:yonetim.php"); } else { echo "Kullanıcı adı veya Şifre Yanlış.<br>"; echo "<a href=index.php>geri dön</a>"; } Örnek Üyelik Sistemi denetim.php dosyasında $_SESSION özelliğini kullanarak 3 yeni session tanımladık. Bunlardan giris isimli olan true değerini taşır ve diğer sayfalarda bu değişken yardımıyla giriş yapılıp yapılmadığını kontrol ederiz. kullanici ve parola session ları da giriş yapan ziyaretçinin kullanıcı adı ve şifre bilgisini tutacak, gerektiğinde yine bu bilgiler kullanılabilecek. 104

Örnek Üyelik Sistemi Şimdi yonetim.php isimli yönetim sayfasını oluşturalım include("ayarlar.php"); session_start(); if(!isset($_session["giris"])) { echo "Bu sayfayı görüntüleme yetkiniz yoktur.<br>"; echo "<a href=index.php>giriş sayfası</a>"; } else { echo "Admin Paneli<br>"; echo "<a href=\"cikis.php\">çıkış Yap</a>"; } Örnek Üyelik Sistemi yonetim.php dosyasında kullandığımız isset() fonksiyonu, içerisine gönderilen değişkenlerin var olup olmadığını kontrol eder. Yani bir değişken daha önceden tanımlanmışsa TRUE tanımlanmamışsa FALSE değerini döndürür. Biz giriş yapan ziyaretçi için giris isimli bir session tanımlamıştık, bu sayfada onun var olup olmadığını kontrol ettik. 105

Örnek Üyelik Sistemi Şimdi giriş yapan kullanıcının çıkış yapması için cikis.php dosyasını oluşturalım session_start(); session_destroy(); echo "Çıkış işlemi tamamlandı."; echo "<br><a href=index.php>anasayfa</a>"; cikis.php dosyasında kullandığımız session_destroy() komutu açılmış olan oturumun tüm bilgilerini silmek için kullanılır. 106

Aktif Dosyaya Harici Dosya Ekleme include(); Belirtilen dosyayı başka bir dosyaya ekler ve içeriğini değerlendirir. d1.php $renk = 'yeşil'; $meyve = 'elma'; d2.php echo "Bir $renk $meyve"; // -> Bir include d1.php'; echo "Bir $renk $meyve"; // - > Bir yeşil elma Dosya Kontrolü file_exists(); Bir dosya veya dizinin mevcut olup olmadığına bakar. $dosya = '/bir/yol/dosya.txt'; if (file_exists($dosya)) { echo "$dosya diye bir dosya var"; } else { echo "$dosya diye bir dosya yok"; } 107

Dosya ve Dizin Kontrolü is_file(); Verilen ismin bir dosya olup olmadığını döndürür. if (is_file("dosya.txt")) { echo "Bu Bir Dosyadır"; } else{ echo "Bu Bir Dosya Değildir."; } Dosya ve Dizin Kontrolü is_dir(); Verilen ismin bir klasör olup olmadığını döndürür. if (is_dir("dosya.txt")) { echo "Bu Bir Klasördür"; } else{ echo "Bu Bir Klasör Değildir."; } 108

Dosya Özelliklerini Öğrenme is_readable(); Bir dosyanın mevcut ve okunabilir olup olmadığını döndürür. $dosya = 'dnm.txt'; if (is_readable($dosya)) { echo 'Dosya okunabilir'; } else { echo 'Dosya okunamaz'; } Dosya Özelliklerini Öğrenme is_writable(); Bir dosyanın yazılabilir olup olmadığını döndürür. $dosya = 'dnm.txt'; if (is_writable($dosya)) { echo 'Dosyaya yazılabilir'; } else { echo 'Dosyaya yazılamaz'; } 109

Dosya Özelliklerini Öğrenme is_executable(); Bir dosyanın çalıştırılabilir bir dosya olup olmadığını döndürür. $dosya = '/home/vincent/somefile.sh'; if (is_executable($dosya)) { echo $dosya.' çalıştırılabilir'; } else { echo $dosya.' çalıştırılamaz'; } Dosya Özelliklerini Öğrenme filesize(); Dosya uzunluğunu döndürür. // çıktısı: // somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename. ': '. filesize($filename). ' bytes'; 110

Dosya Özelliklerini Öğrenme fileatime(); Dosyaya son erişim zamanını döndürür. // Çıktı şöyle bir şey olur: // birdosya.txt dosyasının son erişim zamanı: Decemb er 29 2008 22:16:23. $dosya = 'birdosya.txt'; if (file_exists($dosya)) { echo "$dosya dosyasının son değişiklik zamanı: ". date ("F d Y H:i:s.", fileatime($dosya)); } Dosya Özelliklerini Öğrenme filemtime(); Dosyanın değişiklik zamanını döndürür. // Çıktı şöyle bir şey olur: // birdosya.txt dosyasının son değişiklik zamanı: Dece mber 29 2008 22:16:23. $dosya = 'birdosya.txt'; if (file_exists($dosya)) { echo "$dosya dosyasının son değişiklik zamanı: ". date ("F d Y H:i:s.", filemtime($dosya)); } 111

Dosya Oluşturma touch(); Dosyanın erişim ve değişiklik zamanını ayarlar. Dosya mevcut değilse oluşturulur. Kullanımı: touch (dosyaismi [,zaman [, ezamanı ]] ) dosyaismi Erişilecek dosyanın ismi. zaman Değişiklik zamanı. Eğer zaman belirtilmemişse, o anki zaman kullanılır. ezamanı Belirtilmişse dosyanın erişim zamanı ezamanı değerine ayarlanır. Aksi takdirde zaman değerine ayarlanır. touch() örnekleri $dosyaismi="dnm.txt" if (touch($dosyaismi)) { echo "$dosyaismi için değişiklik zamanı şimdiye ayarlandı"; } else { echo "$dosyaismi için değişiklik zamanı değiştirilemedi"; } /* * Dosyanın değişiklik zamanını bir saat önceye ayarlayalım */ $zaman = time() - 3600; /* Dosyaya erişelim */ if(!touch('bir_dosya.txt', $zaman)) { echo 'Hoop, bir şeyler yanlış oldu...'; } else { echo 'Dosyaya başarıyla erişildi'; } 112

Dosya Silme unlink(); Bir dosyayı siler. $fh = fopen('deneme.html', 'a'); fwrite($fh, '<h1>merhaba Dünya!</h1>'); fclose($fh); mkdir('dnmdizini', 0777); unlink('deneme.html'); unlink('dnmdizini'); Dosya Açma fopen(); Bir dosya veya URL'yi açar. Kullanımı: değişken=fopen(dosyaadı, açma türü) Eğer açma dosya adı "http://." gibi başlıyorsa URL açılıyor demektir. Açma türleri şunlardır: 113

Açıklama Dosya Açma Türleri Açma Türü 'r' 'r+' 'w' 'w+' Sadece okumak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir. Hem okumak hem de yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir. Sadece yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir ve dosya uzunluğu sıfır yapılır. Dosya mevcut değilse oluşturulmaya çalışılır. Hem okumak hem de yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir ve dosya uzunluğu sıfır yapılır. Dosya mevcut değilse oluşturulmaya çalışılır. 'a' 'a+' 'x' Sadece yazmak için açılır; dosya konumlayıcı dosyanın sonuna yerleştirilir. Dosya mevcut değilse oluşturulmaya çalışılır. Hem okumak hem de yazmak için açılır; dosya konumlayıcı dosyanın sonuna yerleştirilir. Dosya mevcut değilse oluşturulmaya çalışılır. Dosya oluşturulur ve sadece yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir. Dosya zaten mevcutsa fopen() FALSE döndürürek başarısız olur. Dosya mevcut değilse oluşturulmaya çalışılır. 'x+' Dosya oluşturulur ve hem okumak hem de yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir. Dosya zaten mevcutsa fopen() FALSE döndürürek başarısız olur. Dosya mevcut değilse oluşturulmaya çalışılır. b Dosyayı binary tipte açar yada oluşturur. Dosya Açma Örnekleri $dt = fopen("/home/rasmus/file.txt", "r"); $dt = fopen("/home/rasmus/file.gif", "wb"); $dt = fopen("http://www.example.com/", "r"); $dt = fopen("ftp://user:password@example.com/some file.txt", "w"); 114

Dosya Kapatma fclose(); Açık bir dosya tanıtıcısını kapatır. $dt = fopen('birdosya.txt', 'r'); fclose($dt); Dosya İçeriğini Okuma fgets(); Dosya tanıtıcısından bir satır döndürür. Kullanımı: fgets ( dosya değişkeni [, uzunluk ] ) Uzunluk belirtilmez ise satır sonuna kadar olan bilgi okunur. $dt = fopen("/tmp/inputfile.txt", "r"); if ($dt) { while (!feof($dt)) { $tampon = fgets($dt, 4096); echo $tampon; } fclose($dt); } 115

Dosya İçeriğini Okuma feof(); Bir dosya tanıtıcısı üzerinde konum dosya sonunda mı diye bakar. $dt = fopen("/tmp/inputfile.txt", "r"); if ($dt) { while (!feof($dt)) { $tampon = fgets($dt, 4096); echo $tampon; } fclose($dt); } Dosya İçeriğini Okuma fread(); Dosyayı satır satır değil de belirli uzunlukta okumak için kullanılır. Kullanımı: fread ( dosya değişkeni, uzunluk ) // bir dosyanın içeriğini bir dizge olarak okuyalım $dosya = "/usr/local/birmetin.txt"; $dt = fopen($dosya, "r"); $içerik = fread($dt, filesize($dosya)); fclose($dt); 116

Dosya İçeriğini Okuma fgetc(); Dosya içeriğini karakter karakter okur. $dt = fopen('birdosya.txt', 'r'); if (!$dt) { echo 'birdosya.txt dosyası açılamadı'; } while (false!== ($kar = fgetc($dt))) { echo "$kar\n"; } Dosya İçeriğini Okuma fseek(); Dosya içeriğinin belirli bir bölümden sonrasını okumak amacıyla dosya içersinde istenilen yere konumlandırma yapar. Kullanımı: fseek ( dosya değişkeni, nereye [, nereden ] ) Dosya değişkeni Bir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur. nereye Yeni konum. Konumu dosya sonunun öncesine taşımak için bu değiştirgeyle negatif bir değer, nereye değiştirgesiyle de SEEK_END aktarın. nereye Mevcut konumun nasıl yorumlanacağı belirtilir: SEEK_SET - nereye konumunun dosya başlangıcına göre belirtildiği varsayılır. SEEK_CUR - nereye konumunun mevcut dosya konumuna göre bayt sayısı olarak belirtildiği varsayılır. Bu miktar pozitif veya negatif olabilir. SEEK_END - nereye konumunun dosya sonuna göre belirtildiği varsayılır. Eğer nereden belirtilmezse, SEEK_SET öntanımlıdır. 117

fseek() örneği $fp = fopen('dosya.txt', 'r'); // Biraz veri okuyalım $data = fgets($fp, 4096); // rewind($fp) çağrısı yapmış gibi // dosyanın başına dönelim; fseek($fp, 0); Dosyaya Bilgi Yazma fwrite(); fputs(); Her iki komut dosyaya bilgi yazmak için kullanılır. Kullanımı: fwrite ( dosya değişkeni, dizge [, uzunluk ] ) $dosya = 'dnm.txt'; $veri = "Bunu dosyaya ekleyelim\n"; // Önce dosya mevcut mu ve yazılabilir mi, bakalım. if (is_writable($dosya)) { // Örneğimizde $dosya'yı ekleme kipinde açıyoruz. // Konumlayıcı dosyanın sonunda olduğundan fwrite() // $veri dizgesini dosyanın sonuna ekleyecektir. if (!$dt = fopen($dosya, 'a')) { echo "$dosya dosyası açılamadı"; exit; } // $veri'yi açılan dosyaya yazalım. if (fwrite($dt, $veri) == FALSE) { echo "$dosya dosyasına yazılamıyor"; exit; } echo "$dosya dosyasına '$veri' başarıyla yazıldı"; fclose($dt); } else { echo "$dosya dosyası yazılabilir değil"; } 118

Dosya Kilitleme flock(); Bir dosyaya aynı anda bir erişim yapılabilmesini sağlar. Aynı anda dosyaya birden çok kişinin erişebilmesini engeller. Kullanımı:flock ( dosya değişkeni, işlem ) işlem şunlardan biri olabilir: Paylaşımlı bir kilit (okuyucu) edinmek için LOCK_SH. Ayrıcalıklı bir kilit (yazıcı) edinmek için LOCK_EX. Bir kilidi (paylaşımlı veya ayrıcalıklı) serbest bırakmak için LOCK_UN. flock() örneği $dt = fopen("/tmp/lock.txt", "w"); if (flock($dt, LOCK_EX)) { // ayrıcalıklı bir kilit oluşturalı m fwrite($dt, "Buraya bir şeyler yazalım\n"); flock($dt, LOCK_UN); // kilidi serbest bırakalım } else { echo "Kilit edinilemedi!"; } fclose($dt); 119

Klasör İçeriğini Listeleme opendir(); Bir klasör açar. readdir(); Açılmış bir klasörün içini okur. $dizin = "/etc/apache2/"; // Dizin aç ve içeriğin oku if (is_dir($dizin)) { if ($dit = opendir($dizin)) { while (($dosya = readdir($dit))!== false) { echo "dosya adı: $dosya - dosya türü: ". ((filetype($dizin. $dosya) == "dir")? "dizin" : "dosya"). "\n"; } closedir($dit); } } 120

Klasör Oluşturma mkdir(); Dizin oluşturur. Kullanımı: mkdir([yol]/dizinadı,izin) İzinler: 0600: Sahibinden başkası okuyup yazamasın. 0644: Sahibi okuyup yazsın diğerleri sadece okusun 0777: Herkes okuyup yazabilsin. 0755:Sahibi herşeyi yapsın, diğerleri sadece okuyup çalıştırabilsin 0750: Sahibi herşeyi yapsın, grup üyeleri okuyup çalıştırabilsin, diğerleri hiçbir şey yapamasın. mkdir("/dizinim/icin/bir/yol", 0777); Klasör Silme rmdir(); Dizin siler. if (!is_dir('misaller')) { mkdir('misaller'); } rmdir('misaller'); 121