83
Php Giriş

Php Giriş

  • Upload
    jam

  • View
    102

  • Download
    0

Embed Size (px)

DESCRIPTION

Php Giriş. - Web sayfaları için dinamik içerik oluşturur. - Sunucu taraflı bir script dilidir. - Apache ve IIS üzerinde çalışır. - Programlama, veri alış-verişi, oturum yönetimi, veritabanı işlemleri …. PHP’YE GİRİŞ. Php Nedir?. PHP : Hypertext Preprocessor - PowerPoint PPT Presentation

Citation preview

Page 1: Php  Giriş

Php Giriş

Page 2: Php  Giriş

PHP’YE GİRİŞ

- Web sayfaları için dinamik içerik oluşturur.

- Sunucu taraflı bir script dilidir.

- Apache ve IIS üzerinde çalışır.

- Programlama, veri alış-verişi, oturum yönetimi, veritabanı işlemleri …

Page 3: Php  Giriş

Php Nedir?

PHP : Hypertext Preprocessor Kaynak kodlu script programlama dili Web geliştirme HTML ile entegre olarak kullanılır

Page 4: Php  Giriş

<html><body>

<?phpecho "Merhaba Dünya";?>

</body></html>

Page 5: Php  Giriş

Html ile birlikte yazıldığında “<?php” başlangıç ve “?> “ bitiş etkiletleri

arasında ki php kodları yorumlanmaktadır.

Page 6: Php  Giriş

Web Sunucu Yapısı

Web Sunucu

Veritabanı

PHP

Kullanıcı (Web

Tarayıcı)

Page 7: Php  Giriş

Php neler yapabilir ?

Herşey Web Sunucu tarafında script dili olarak

geliştirilmektedir. CGI, Asp, Perl vb. script dillerinin

yapabildiği herşeyi Php ile gerçekleştirmem mümkündür. › Veri toplama› Dinamik web sayfası hazırlama› Cookies (çerez) gönderme alma

Page 8: Php  Giriş

Ek olarak› Sunucu tarafı script kodlaması› Komut satırı script kodlaması› Masa üstü programları hazırlanması

Page 9: Php  Giriş

Hangi Platformlarda çalışır ?

Php aşağıdaki web sunucular üzerinde çalışabilir:› Linux › Unix Türevleri › Microsoft Windows› Mac OS X› Ve diğerleri…

Page 10: Php  Giriş

Web Sunucu Yazılımları

Php’nin üzerinde çalıştığı web sunucu yazılımları şunlardır:ApacheMS Internet Information ServerMS Personal Web ServerNetscape and iPlanet serversOreilly Website Pro serverCaudiumXitamiOmniHTTPdVe diğerler...

Page 11: Php  Giriş

Desteklenen Veritabanları

Adabas D InterBase PostgreSQL

dBase FrontBase SQLite

Empress mSQL Solid

FilePro (read-only) Direct MS-SQL Sybase

Hyperwave MySQL Velocis

IBM DB2 ODBC Unix dbm

Informix Oracle (OCI7 and OCI8)  

Ingres Ovrimos  

Page 12: Php  Giriş

PHP Dosyası Nedir?PHP dosyaları yazı, HTML taglarını ve PHP kodlarını içerebilir.

PHP dosyaları sunucuda yorumlanır ve tarayıcıya HTML şeklinde yansır.

PHP dosyalarının uzantıları ".php", ".php3", veya ".phtml" şeklindedir.

MySQL Nedir?

MySQL bir veritabanı sunucusudur. MySQL hem büyük hemde küçük uygulamalar için ideal bir

veritabanıdır. MySQL standart SQL komutlarını destekler. MySQL çeşitli platformlarda derlenir. MySQL veritabanı sunucusunu indirmek ve kullanmak

ücretsizdir.

Page 13: Php  Giriş

GENEL YAPI

- <?php ?> veya <? ?> tag lerinin arasına kod yazılır.

- HTML kodunun içerisine eklenebilir.

<p><b> <?php echo “MERHABA”; ?></b></p>

<?php echo “MERHABA”;?>

<? echo “MERHABA”;?>

Page 14: Php  Giriş

GENEL YAPI

- Her komut ifadesi ; simgesi ile bitmek zorundadır.

- Küçük-büyük harf duyarlılığı vardır.

<?

$user_name = “ugur”;$sayac = 5; echo “MERHABA $user_name”;

?>

Page 15: Php  Giriş

PHP HTML karma kullanım

<p>Bu satır Php tarafından işleme alınmayacak.</p>

<?php echo “Bu satır php tarafından yorumlanacak.”; ?><p>Bu satır da Php tarafından işleme

alınmayacak.</p>

Page 16: Php  Giriş

Değişkenleri İsimlendirme Kuralları

Bir değişken harfle, rakamla veya alt çizgi(_) ile başlamalıdır.

Bir değişken sadece harf, rakam ve alt çizgi içerebilir(a-z, A-Z, 0-9, ve _ )

Bir değişken boşluk içeremez. Eğer bir değişken birden çok isim içeriyorsa bunları ayırmak için alt çizgi kullanılabilir($degisken_adi) veya büyük harf ile başlayabilir($DegiskenAdi).

Page 17: Php  Giriş

GENEL YAPI- # // /* */ simgeleri bilgilendirme

için kullanılır. Yorumlanmadan geçilir.

<?

# Bu satır bilgilendirme içindir// PHP bu satırları yorumlamaz/* Bu satırlar da yorumlanmaz*/

echo “MERHABA”; // Ekrana MERHABA yazar.

?>

Page 18: Php  Giriş

GENEL YAPI

- Çift tırnak ve tek tırnak kullanımıString değerler çift tırnak veya tek tırnak içinde tanımlanır.

$isim = “Ahmet”;$okul = “Doğuş Üniversitesi”;

$isim = ‘Ahmet’;$okul = ‘Doğuş Üniversitesi’;

Page 19: Php  Giriş

GENEL YAPI

- Çift tırnak ve tek tırnak kullanımı

$bilgi = “Mehmet ‘AA’ aldı.”; DOĞRU$bilgi = “Mehmet “AA” aldı.”; YANLIŞ

- Tırnak içinde aynı tırnağı kullanmakiçin \ (ters slash) kullanılır.

$bilgi = “Mehmet \“AA\” aldı.”; $bilgi = ‘Mehmet \’AA\’ aldı.’;

Page 20: Php  Giriş

GENEL YAPI

- ÖZEL KARAKTERLER

\' Tek tırnak\" Çift tırnak\\ Ters-slash(bölü)\$ Dolar işareti\n Yeni Satır (newline)\r Satır Başı (return)\t Sekme Karakteri (tab)

ÖRNEK UYGULAMA-1

Page 21: Php  Giriş

DEĞİŞKENLER

- Değişkeni önceden tanımlamaya gerek yoktur.

- Her değişken $ simgesi ile başlar.$isim $user_name $degisken_2

- Değişken rakam ile başlayamaz. $1_ogrenci

Page 22: Php  Giriş

DEĞİŞKENLER

- Değişken tipleriInteger 45 -785 1145395 …Double 4.5 654.7801 -488.456 String “DÜ” “php ve mysql” “ieee dü”Boolean True False

- Değişkenin hangi tipte olduğu gettype() fonksiyonu ile belirlenir.

Ekrana double yazar.

<?

$deger=79.35; echo gettype($deger);

?>

Page 23: Php  Giriş

DEĞİŞKENLER

- Array: Dizi değişkenler.Birden fazla değeri bir değişkende dizi olarak tutmaya yarar. İstenildiğinde bir döngü içerisinde hepsi görüntülenebilir.

$ogrenci_adi[0] = “Uğur”;$ogrenci_adi[1] = “Oğuz”;…………$ogrenci_adi[20] = “Kemal”;

ÖRNEK UYGULAMA-2

Page 24: Php  Giriş

Birleştirme OperatörüPHP'de bu işi yapan bir terim vardır.Birleştirme operatörü(.) iki değeri bir arada kullanmak için kullanılır.<?php$yazi="Merhaba Dünya";$sayi="1234";echo $yazi . " " . $sayi;?>

Merhaba Dünya 1234

Page 25: Php  Giriş

strlen() Fonksiyonunun Kullanımı

strlen() fonksiyonu bir terimin uzunluğunu bulmak için kullanılır.Hadi "Merhaba Dünya!" teriminin uzunluğunu bulalım:

<?phpecho strlen("Merhaba Dünya!");?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olaca

ktır.

Bir terimin uzunluğu bazı işlemlerde işe yaramaktadır. Örneğin terimdeki 5. harften sonra şu işlemi uygula gibi.

Page 26: Php  Giriş

strpos() Fonksiyonunun Kullanımı

strpos() fonksiyonu herhangi bir yazıda bir terimi veya harfi bulmak için kullanılır.

Eğer bir sonuç bulursa ilk bulduğu sonucun pozisyonunu rakamsal olarak yazdırır fakat hiç bir sonuç bulamazsa FALSE olarak döner.Hadi bakalım "dünya" kelimesini yazımızda bulalım:

<?phpecho strpos("Merhaba dünya!","dünya");?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.8"dünya" kelimesinin pozisyonu 8'dir. Neden 9 değilde 8 ?

PHP sayma işlemerinde 1'den başlamaz 0'dan başlar.

Page 27: Php  Giriş

OPERATÖRLER

== Eşit ise != Eşit değilse< Küçük ise <= Küçük veya eşit ise> Büyük ise >= Büyük veya eşit ise

$deger == 60 60 a eşit ise$sayi <= 125 125 ten küçük veya eşit ise$sayi >= 65 65 ten büyük veya eşit ise

$a++; a değerini 1 arttır$a--; a değerini 1 azalt

+ = $a+ = 5 $a = $a + 5 - = $a- = 5 $a = $a - 5 / = $a/ =5 $a = $a / 5 * = $a* = 5 $a = $a * 5

Page 28: Php  Giriş

Karşılaştırma Operatörleri

Operatör: == | Anlamı: Eşittir | Örnek: 5==8 FALSE DönerOperatör: != | Anlamı: Eşit Değildir | Örnek: 5!=8 TRUE DönerOperatör: > | Anlamı: Büyüktür | Örnek: 5>8 FALSE DönerOperatör: < | Anlamı: Küçüktür | Örnek: 5<8 TRUE DönerOperatör: >= | Anlamı: Büyük Eşittir | Örnek: 5>=8 FALSE DönerOperatör: <= | Anlamı: Küçük Eşittir | Örnek: 5<=8 TRUE Döner

Mantıksal OperatörlerOperatör: && | Anlamı: ve | Örnek: x=6, y=3, (x < 10 && y > 1) TRUE DönerOperatör: || | Anlamı: veya | Örnek: x=6, y=3, (x == 5 || y == 5) FALSE DönerOperatör: ! | Anlamı: değil | Örnek: x=6, y=3, !(x == y) TRUE Döner

Page 29: Php  Giriş

KONTROL YAPILARI ve DÖNGÜLER- KONTROL YAPILARI

Belirli bir değere göre programın izleyeceği yolu veya bir değişkenin alacağı değeri belirlemek için kullanılır.

if - else if - else if switch-case

- DÖNGÜLERBelirli bir koşul sağlanıncaya kadar programa belirli bir iş yaptırmak için kullanılır.

while() for() foreach()

Page 30: Php  Giriş

if (durum)  eğer durum doğruysa çalıştırılacak kod;else  eğer durum doğru değilse çalıştırılacak kod; 

Page 31: Php  Giriş

Aşağıdaki kod eğer günlerden Cuma ise "İyi tatiller!" değilse "İyi günler!" yazısını ekrana yazdıracaktır:

<html><body>

<?php$d=date("D");if ($d=="Fri")  echo "İyi tatiller!"; else  echo "İyi günler!"; ?>

</body></html>

Page 32: Php  Giriş

Eğer çalıştırılacak olan kod satırı birden fazlaysa if ve else ifadelerinde çalıştırılacak kodların başına ve sonuna küme parantezi eklenir( { } ):<html><body>

<?php$d=date("D");if ($d=="Fri")  {  echo "Merhaba!<br />";   echo "İyi tatiller!";  echo "Pazartesi görüşürüz!";  }?>

Page 33: Php  Giriş

ElseIf İfadeleri

Eğer koşullu ifadenizde birden çok durum için koşul belirtecekseniz elseis ifadesini kullanmak zorundasınız.

Kod Yapısıif (durum1)  durum1 geçerliyse çalıştırılacak kod;elseif (durum2)  durum2 geçerliyse çalıştırılacak kod;else  durum1 ve durum2 geçerli değilse çalıştırılacak kod; 

Page 34: Php  Giriş

ÖrnekEğer günlerden Cuma ise "İyi tatiller!", Pazar ise "İyi Pazarlar!" diğer günler ise "İyi günler!" çıktısını veren kod:<html><body>

<?php$d=date("D");if ($d=="Fri")  echo "İyi tatiller!"; elseif ($d=="Sun")  echo "İyi Pazarlar!"; else  echo "İyi günler!"; ?>

</body></html>

Page 35: Php  Giriş

Switch İfadesi

Switch ifadesi farklı durumlar için farklı işlemlerin/değerlerin işlenmesini sağlayan bir PHP ifadesidir.-------------------------------------------------------------------Switch İfadesiFarklı işlemlerde kullanılacak bir çok satırdan oluşan kodların çalıştırılmasında Swicth ifadesini kullanmak en mantıklısıdır.Switch ifadesi daha önce incelenen if...elseif...else ifadesinin uzayıp karışıklık yaptığı durumlarda durumu kolaylaştırmak ve kısaltmak için kullanılır.Kod Yapısıswitch (ifade){case asama1:  ifade = asama1 ise çalıştırılacak kod;  break;  case asama2:  ifade = asama2 ise çalıştırılacak kod;  break;default:  ifadeniz asama1 ve asama2 iiçin geçerli değilse çalıştırılacak kod;} 

Page 36: Php  Giriş

ÖrnekÇalışma yöntemi:Öncelikle bir ifade(genellikle bir değişken) belirtilir

Belirlenen ifade durumlardaki(case) değerlerle karşılaştırılır

Eğer bir eşleşme çıkarsa eşleşen durumdaki(case) kod çalıştırılır

Kod çalıştıktan sonra bir sonraki satırda yer alan break komutu switch bloğunun işlemini tamamlandığını diğer satırları incelemenin gerek kalmadığını ifade ediyor

Eğer ifade ile hiçbir durum eşleşmezse default bloğundaki kod çalıştırılır.

Page 37: Php  Giriş

<html><body>

<?phpswitch ($x){case 1:  echo "Rakam 1";  break;case 2:  echo "Rakam 2";  break;case 3:  echo "Rakam 3";  break;default:  echo "Bu 1 ile 3 arasında bir rakam değil";}?>

</body></html>

Page 38: Php  Giriş

PHP Diziler

Bir dizi bir veya daha fazla değeri tek bir değişkende saklayabilir.-------------------------------------------------------------------Dizi Nedir?PHP ile çalıştığınız zaman benzer bir çok değişken kullanmak isteyeceksiniz.Benzer değişkenler kullanmak yerine bilgileri tek bir değişken içinde dizi şeklinde saklayabilirsiniz. Şu anda bunun nasıl olduğunu pek anlamamış olabilirsiniz. Örneklerimizi görünce daha iyi anlayacaksınız.Dizideki her elementin kendi ID'si vardır, buda bu dizideki değerlere ulaşmamıza olanak veren bir kimlik değeri taşır.Üç çeşit dizi türü vardır:Numerik Dizi - ID'yi sizin belirlemediğiniz diziler

Çağrışımlı Dizi - ID'yi sizin belirlediğiniz diziler Çok Boyutlu Dizi - Bir dizinin içinde bir veya daha fazla dizi

bulunması

Page 39: Php  Giriş

Numerik DizilerNumerik dizi içindeki değerleri kendi atadığı bir ID ile çağırmanıza sağlar. Bu ID'ler ilk değere "0" olmak üzere büyüyen rakamlardan oluşur. Örn: 0,1,2...Numerik dizi oluşturmak için farklı yöntemler varÖrnek 1Bu örnekte ID otomatik olarak PHP tarafından üretilmiştir.$names = array("Ali","Veli","Hasan");    Örnek 2Bu örnekte ise ID'leri biz kendimiz yazarak diziyi hazırladık.$names[0] = "Ali";$names[1] = "Veli";

Page 40: Php  Giriş

Bir php sayfasının içinde kullanımı<?php

$names[0] = "Ali";$names[1] = "Veli";$names[2] = "Hasan";

echo $names[1] . " ve " . $names[2] . ", ". $names[0] . "'ın abileridir";?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.Ali ve Veli, Hasan'ın abileridir

Page 41: Php  Giriş

Çağrışımlı Diziler

Çağrışımlı dizilerde ID sizin belirttiğiniz bir değerdir. Özel bilgileri diziye ekleyeceğiniz zaman bunlara rakamsal ID'ler atamak çok iyi bir yöntem değildir.Çağrışımlı diziler ile bilgilerin ID'lerine bilgilerin kendileriyle alakalı değerler atayabiliyoruz.Örnek 1Bu örnek farklı insanların yaşlarını yazdırmak içindir:$ages = array("Ali"=>32, "Veli"=>30, "Hasan"=>34);  Örnek 2Bu örnek 1 ile aynı sadece yazılış tarzı farklı:$ages['Ali'] = "32";$ages['Veli'] = "30";$ages['Hasan'] = "34";  

Page 42: Php  Giriş

Bir php sayfasının içinde kullanımı:<?php

$ages['Ali'] = "32";$ages['Veli'] = "30";$ages['Hasan'] = "34";

echo "Veli " . $ages['Veli'] . " yaşındadır.";?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.Veli 30 yaşındadır.  

Page 43: Php  Giriş

Çok Boyutlu DizilerÇok boyutlu dizilerde bir dizi içindeki değerin içine başka bir dizi atama yetkisine sahip olursunuz. Yani bir ana dizi vardır bir de o ana dizinin içindeki değerlerin altdizini vardır. Bu alt dizinler ihtiyaca göre arttırılabilir.ÖrnekBu örnekte ID'leri otomatik belirlenen çok boyutlu bir dizi oluşturalm,

Page 44: Php  Giriş

$aile = array(  "Celal"=>array  (  "Veli",  "Selma",  "Çile"  ),  "Erdal"=>array  (  "Necati"  ),  "Hüseyin"=>array  (  "Azad",  "Özge",  "Hasan"  )); 

Page 45: Php  Giriş

Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.

Array([Celal] => Array  (  [0] => Veli  [1] => Selma  [2] => Çilem  )[Erdal] => Array  (  [0] => Necati  )[Hüseyin] => Array  (  [0] => Azad  [1] => Özge  [2] => Hasan  )) 

Page 46: Php  Giriş

Örnek 2Yukarıdaki kodu basit bir şekilde şöyle kullanabiliriz:echo $aile['Celal'][3] . " Celal ailesinin bir üyesi midir?"; 

Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır

Çilem Celal ailesinin bir üyesi midir? 

Page 47: Php  Giriş

PHP Tekrarlama

Tekrarlama ifadesi PHP'de istediğiniz bir blok kodun yine istediğiniz kadar tekrarlanarak çalıştırılmasıdır.-------------------------------------------------------------------TekrarlamaÇok sık bir şekilde kodlama yaparken bazı kısımların birkaç defa tekrarlanmasını istersiniz. Bu durumda tekrarlama ifadelerinden birini bu durumlar için kullanabilirsiniz.PHP'de aşağıdaki tekrarlama ifadelerinden faydalanılır:while - kod bloğunu while'a girilen değer true döndükçe tekrarlar

do...while - kod bloğunu bir kere çalıştırır ve eğer girilen değer true olarak dönerse tekrarlamaya devam eder

for - kod bloğunu sizin istediğiniz kadar tekrarlar foreach - kod bloğunu bir dizideki her bir eleman için ayrı ayrı

tekrarlar

Page 48: Php  Giriş

while İfadesiKod bloğunu while'a girilen değer true döndükçe tekrarlar

Kod Yapısıwhile (durum)çalıştırılacak kod;   

Page 49: Php  Giriş

ÖrnekAşağıdaki tekrarlama işlemi $i değişkenindeki değer 5'ten küçük ve 5'e eşit olana kadar tekrarlanır. Şimdi $i=1 diyorsunuz o zaman bu sonsuza kadar tekrarlanır diye düşünebilirsiniz. Fakat while işleminin içinde $i++ ifadesi $i değişkenindeki sayıyı 1 arttırır. While $i değişkeni için tekrar yukarıya bakamayacağı için en son kullanılan $i'yi alır. Bizde $i'yi 1 arttırdığımıza göre ona göre sonuç döndürür.<html><body>

<?php $i=1;while($i<=5)  {  echo "Rakamlar tekrarlanıyor " . $i . "<br />";  $i++;  }?>

</body></html>

Page 50: Php  Giriş

do... while İfadesiwhile ifadesinde eğer durum false olarak dönseydi kod bloğunu hiç tekrarlamayacaktır. Fakat do...while ifadesinde kod bloğu en az bir kere tekrarlanır. Daha sonra durum true olarak döndükçe tekrarlanmaya devam eder.Kod Yapısıdo{çalıştırılacak kod bloğu;}while (while);   

Page 51: Php  Giriş

ÖrnekAşağıdaki işlemde $i değişkene bir kere arttırılacak. Eğer değer while'daki durum hala true olarak dönüyorsa bir arttırmaya devam edecek. En son $i 5 veya 5'ten büyük olursa tekrarlanma işlemi duracak:<html><body>

<?php $i=0;do  {  $i++;  echo "Rakamlar tekrarlanıyor " . $i . "<br />";  }while ($i<5);?>

</body></html>

Page 52: Php  Giriş

for İfadesi

for ifadesi PHP'deki en çok kullanılan ve en ileri düzey tekrarlama ifadesidir.for, bir kod bloğunu kaç defa kullanmak isterseniz size o kadar kullanmanızı sağlayan ifadedir.Kod Yapısıfor (initdgr; drm; artr){  Çalıştırılacak kod bloğu;}   

Page 53: Php  Giriş

Parametreler:initdgr: Genel sayaç niteliğinde olur ve rakamdır fakat buraya isterseniz tekrarlama işleminin en başında çalıştırılacak herhangi bir kod yazabilirsiniz.

drm: Tekrarlama işleminin kontrolünü yapar. Yani buraya durumu yazarsınız. Eğer durum olumlu ise TRUE döndürür ve tekrarlamaya devam eder. FALSE ise tekrarlamayı bitirir.

artr: dgr parametresinde sayaç için rakamsal bir değer girersek bu rakamın her seferinde arttırılmasını sağlayan parametredir. Tekrarlanan kod bloğundan sonrar çalıştırılır.

Not: Her bir parametre boş olabilir veya virgülle ayırmak şartıyla birden fazla parametre ekleyebilirsiniz.

drm: Durum parametresine birden çok değeri virgülle ayırarak girebilirsiniz. Ör. "$i>5,$=5". Veya isterseniz bu parametreyi boş bırakabilirsiniz fakat bu da girdiğiniz kod bloğunu sonsuz olarak çalıştıracaktır.

Page 54: Php  Giriş

ÖrnekAşağıdaki kod "Merhaba Dünya!" yazısını ekrar beş defa yazdıracaktır:<html><body>

<?phpfor ($i=1; $i<=5; $i++){  echo "Merhaba Dünya!<br />";}?>

</body></html>

Page 55: Php  Giriş

foreach İfadesi

foreach ifadesi bir dizideki elemanların hepsini yazdırana kadar tekrarlanmasını sağlar.Her tekrarlamada dizideki elemanı $deger değişkenine atar ve onu kullanır(her tekrarlamada dizideki bir sonraki değer alınır).

Kod Yapısıforeach (Dizi as AtanacakYeniDeğişken){    Çalıştırılacak kod bloğu;}   

Page 56: Php  Giriş

ÖrnekAşağıdaki tekrarlama ifadesi dizi içindeki bütün ifadeleri teker teker yazdırır:<html><body>

<?php$dizi=array("bir", "iki", "üç");

foreach ($dizi as $deger){  echo "Dizideki eleman: " . $deger . "<br />";}?>

</body></html>

Page 57: Php  Giriş

<html> <body><?php $arr=array(“bir", “iki", “üç");foreach ($arr as $value) { echo "Value: " . $value . "<br

/>"; } ?></body> </html>

Page 58: Php  Giriş

PHP Fonksiyonlar PHP gerçek gücünü fonksiyonlardan almaktadır.

PHP 700'den fazla fonksiyona sahiptir.

PHP FonsiyonlarBu derste kendi fonksiyonlarınızı nasıl oluşturacağınızı göstereceğiz.Hazır fonksiyonlar ileriki derslerde açıklanacaktır.

PHP Fonksiyonu OluşturunFonksiyon ihtiyacımız olduğu zaman çalıştırabileceğimiz bir kod bloğudur.PHP fonksiyon oluştururken:Önce "function ... ()" yazılır.

Fonksiyonu isimlendirin - Fonksiyonun işlevini anlatan bir isim olabilir. Alt çizgi ve harfle başlar (rakamla değil).

"{" ekleyin - Çalıştıracağınız kod bloğunun başına "{" (küme parantezi) ekleyin.

"}" ekleyin - Çalıştıracağınız kod bloğunun sonuna "}" ekleyin ve fonksiyonu bitirin.

Page 59: Php  Giriş

ÖrnekÇağrıldığı zaman ekrana isim yazdıran bir fonksiyon<html><body>

<?phpfunction adimiYaz()  {  echo “Mert Koral";  }

adimiYaz();?>

</body></html>

Page 60: Php  Giriş

PHP Fonksiyonu KullanalımŞimdi fonksiyonu PHP scriptimizin içinde kullacağız:<html><body>

<?phpfunction adimiYaz()  {  echo “Ahmet Tanman";  }

echo "Merhaba Dünya!<br />";echo "Benim adım ";adimiYaz();echo ".<br />Yanlış duymadınız, ";adimiYaz(); echo " benim adım.";?>

</body></html>

Page 61: Php  Giriş

Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.

Merhaba Dünya!Benim adım  Ahmet Tanman Yanlış duymadınız,  Ahmet Tanman  benim adım.  

Page 62: Php  Giriş

PHP Fonksiyonlar - Parametre Ekleme

İlk fonksiyonumuz (adimiYaz()) çok basitti. Sadece statik bir yazıyı yazdırmamızı sağlıyordu.Fonksiyonları daha fonksiyonel yapmak için bazı parametreler ekleyebiliriz.Fonksiyon adından sonraki parantezleri hatırlıyorsunuz, ör: adimiYaz(). Parametreler bu parantezlerin içine yazılır.

Page 63: Php  Giriş

Örnek 1Aşağıdaki fonksiyon adları farklı ama soyadları aynı yazdırmayı sağlar:<html><body>

<?phpfunction adimiYaz($ad)  {  echo $ad . " Koral.<br />";  }

echo "Benim adım "; adimiYaz(“Murat");

echo "Benim adım "; adimiYaz("Ahmet");

echo "Benim adım "; adimiYaz(“Mehmet");?>

</body></html>

Page 64: Php  Giriş

Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.

Benim adım Mert Koral.Benim adım Ahmet Koral.Benim adım Mehmet Koral

Page 65: Php  Giriş

<html><body>

<?phpfunction adimiYaz($ad,$noktalamaisareti)  {  echo $ad . “Koral" . $noktalamaisareti . "<br />";  }

echo "Benim adım "; adimiYaz(“Mert",".");

echo "Benim adım "; adimiYaz(“Ahmet","!");

echo "Benim adım "; adimiYaz(“Mehmet","...");?>

</body></html>

Page 66: Php  Giriş

Benim adım Mert Koral.Benim adım Ahmet Koral!Benim adım Mehmet Koral..

Page 67: Php  Giriş

PHP Fonksiyonlar - Return Değeri

Fonksiyonlar ayrıca değer sonuç olarak bir değerler dönebilir. Bunu örnekle daha iyi anlayacaksınız:Örnek<html><body>

<?phpfunction topla($x,$y)  {  $toplam = $x + $y;  return $toplam;  /* return $toplam elde edilen sonuc topla() fonksiyonu kullanıldığı  zaman $toplam değerini elde eder fakat echo komutu kullanılmadan ekrana yazdırmaz */  }

echo "1 + 16 = " . topla(1,16);?>

</body></html>

Page 68: Php  Giriş

Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.

1 + 16 = 17

Page 69: Php  Giriş

PHP'de formdan gelen bilgileri almak için $_GET ve $_POST değişkenleri kullanılır.-------------------------------------------------------------------Basit Bir Form OluşturalımHTML formlarla PHP konusunda bilmeniz gereken en önemli bilgi, HTML kullanarak bir sayfada oluşturduğunuz formdaki bilgiler PHP skripti tarafından otomatik olarak algılanmaya hazır kodlardır, dolayısıyla direk olarak sayfaya gönderip orada çalıştırabilirsiniz.Form Örneği<html><body>

<form action="merhaba.php" method="post">Adınız: <input type="text" name="ad" />Yaşınız: <input type="text" name="yas" /><input type="submit" value="Gönder" /></form>

</body></html> 

Page 70: Php  Giriş

Örnek HTML sayfamız iki adet input alanı ve bir adet gönder butonuna sahiptir. Kullanıcı Gönder butonuna tıkladığı zamanda formdaki bilgiler önceden hazırlanmış "merhaba.php" sayfasına gönderiliyor.Bu dosyanın içeriği ise:<html><body>

Merhaba <?php echo $_POST["ad"]; ?>.<br />Sen <?php echo $_POST["yas"]; ?> yaşındasın.

</body></html>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki gibi olacaktır.

Merhaba Ahmet.Sen 17 yaşındasın. 

Page 71: Php  Giriş

Form Doğrulama Bazı durumlarda form alanlarının doğrulanması gerekir.

Bunun için tarayıcı taraflı(client side) doğrulama daha hızlıdır ve sunucuya olan yükünüzü azaltır.

Fakat, iyi bir trafiğe sahip bir sitenin bir takım güvenlik sebeplerinden dolayı sunucu taraflı kontrol yapması gerekebilir. Eğer formdaki bilgiyle veritabanı ile işlem yapılacaksa formun kontrolünü sunucu taraflı(server side) yapmalısınız.

Bir formu doğrulamak için yapılacak en iyi yöntem formu gönder sayfasıyla formdaki bilgilerin işleneceği sayfanın tek sayfada olmasıdır. Hem bu sayede formdaki eksik doldurulmuş alanları aynı anda kullanıcıya form alanlarıyla beraber gösterebilirsiniz. Buda kullanıcının hatasını bulmasını kolaylaştırır.

Page 72: Php  Giriş

PHP'de $_GET Değişkeni $_GET değişkeniyle bilgi method="GET" formlarından

alınır.-------------------------------------------------------------------$_GET Değişkeni$_GET değişkeni verileri HTTP GET metodu ile alır.$_GET değişkeniyle bilgi method="GET" formlarından alınır. GET metodu ile alınan bilgiler herkes tarafından görülebilir(tarayıcının adres barında görünür) ve maksimum karakter limiti vardır(max. 100 karakter).

Örnek<form action="merhaba.php" method="get">Adınız: <input type="text" name="ad" />Yaşınız: <input type="text" name="yas" /><input type="submit" value="Gönder" /></form>  

Page 73: Php  Giriş

Kullanıcı "Gönder" butonuna tıkladığında tarayıcının adres barındaki link aşağıdaki gibi olacaktır:

http://www.trkodlama.com/merhaba.php?ad=Ahmet&yas=17 

 "merhaba.php" dosyası formdaki bilgileri yakalamak için $_GET değişkenini kullanır(form alanlarının isimleri otomatik olarak URL'deki ID'lere atanır):

Merhaba <?php echo $_GET["ad"]; ?>.<br />Sen <?php echo $_GET["yas"]; ?> yaşındasın!

Page 74: Php  Giriş

Neden $_GET kullanılır?

Not: $_GET değişkenini kullandığımız zaman form isimleri ve değerleri URL'de görünür. Bu nedenle giriş bilgileri ve diğer önemli form işlemlerinde $_GET değişkeni kullanılmamalıdır. Fakat bir sayfanın sık kullanılanlara eklenmesinde faydalı olabilir.Not: HTTP GETmetodu ile uzun bilgiler yollayamazsınız. Maksimum 100 karakter bilgi gönderebilirsiniz.-------------------------------------------------------------------

$_REQUEST DeğişkeniPHP $_REQUEST değişkeni ile $_GET, $_POST, $_COOKIE değişkenlerinin içeriklerini çekebilir.PHP $_REQUEST değişkeni ile formdan GET veya POST metodu ile gelen verileri çekebilir. Yukarıdaki hazırladığımız HTML formdaki bilgileri aşağıdaki gibi $_GET yerine $_REQUEST ile de çekebiliriz ve sonuçta hiç bir değişiklik olmayacaktır.

ÖrnekMerhaba <?php echo $_REQUEST["ad"]; ?>.<br />Sen <?php echo $_REQUEST["yas"]; ?> yaşındasın!

Page 75: Php  Giriş

PHP'de $_POST Değişkeni

$_POST değişkeni method="POST" olarak ayarlanmış formlardaki bilgileri çeker.-------------------------------------------------------------------$_POST Değişkeni$_POST değişkeni formlardan gelen bilgili HTTP POST metodu ile alır.$_POST değişkeni method="POST" olarak ayarlanmış formlardaki bilgileri çeker. POST metodu ile gönderilen bilgiler başkaları tarafından görülmezler ve herhangi bir sınırlamaları yoktur.

Page 76: Php  Giriş

<form action="merhaba.php" method="post">Adınız: <input type="text" name="ad" />Yaşınız: <input type="text" name="yas" /><input type="submit" value="Gönder" /></form> 

Page 77: Php  Giriş

Kullanıcı "Gönder" butonuna tıkladığı zaman URL'de hiç bir ID ve bilgi tanımlaması oluşmayacaktır:

http://www.BTP204.com/merhaba.php"merhaba.php" dosyasında şimdi $_POST değişkenini formdan bilgileri çekmek kullanabiliriz( form alanlarının isimlerini $_POST dizisinde ID olarak kullanarak bu bilgileri çekeriz):

Merhaba <?php echo $_POST["ad"]; ?>.<br />Sen<?php echo $_POST["yas"]; ?> yaşındasın!

Page 78: Php  Giriş

Neden $_POST kullanılır?Değişkenler HTTP POST metodu ile gönderilir ve URL'de gözükmezler

Değişkenlerin değerleri için herhangi bir uzunluk kısıtlaması yoktur.

Fakat, değişkenler URL'de gözükmediği için sayfaları sık kullanılanlara eklemek mümkün değildir.-------------------------------------------------------------------$_REQUEST DeğişkeniPHP $_REQUEST değişkeni ile $_GET, $_POST, $_COOKIE değişkenlerinin içeriklerini çekebilir.PHP $_REQUEST değişkeni ile formdan GET veya POST metodu ile gelen verileri çekebilir. Yukarıdaki hazırladığımız HTML formdaki bilgileri aşağıdaki gibi $_POST yerine $_REQUEST ile de çekebiliriz ve sonuçta hiç bir değişiklik olmayacaktır.

Merhaba <?php echo $_REQUEST["ad"]; ?>.<br />Sen <?php echo $_REQUEST["yas"]; ?> yaşındasın!

Page 79: Php  Giriş

PHP date() PHP date() fonksiyonu bir tarihi veya zamanı

belirli bir formata sokmak için kullanılır.-------------------------------------------------------------------PHP'de Date() FonksiyonuPHP'de date() fonksiyonu bir tarih damgasını okunabilir bir tarih formatına çevirir.Kod Yapısıdate(format,tarihdamgasi)  Parametre: formatAçıklama: Gereklidir. Tarih damgasını belirli bir formata çevirir.

Parametre: tarihdamgasiAçıklama: İsteğe bağlıdır. Eğer girilirse girilen tarih damgasına göre formatlanır eğer girilmezse o anki time() ile elde edilen tarih damgasına göre formatlanır.

Page 80: Php  Giriş

PHP Tarih - Tarih Damgası Nedir?Tarih damgası dediğimiz Ocak 1, 1970, 00:00:00 GMT tarihinden şu ana kadar geçen saniyedir. Ayrıca bu Unix Tarih Damgası olarak da bilinir.-------------------------------------------------------------------PHP Tarih - Tarihi Formatladate() fonksiyonundaki ilk parametre tarihin nasıl bir formatta gösterileceğini belirtiyor. Tarih formatlarken harfleri kullanır. Tarihi formatlarken kullandığımız bazı harfler:d - Ayın hangi gününde olunduğunu belirtir (01-31)

m - Hangi ayda olunduğunu belirtir, rakamsal olarak (01-12)

Y - Yılı dört haneli olarak gösterir.

Page 81: Php  Giriş

"/", "." veya "-" gibi karakterlerde harflerin arasına eklenerek formatlanan tarihin çıktısını daha belirgin hale getirir:<?phpecho date("Y/m/d");echo "<br />";echo date("Y.m.d");echo "<br />";echo date("Y-m-d");?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki şekilde olacaktır.2006/07/112006.07.112006-07-11

Page 82: Php  Giriş

PHP Tarih - Tarih Damgası Eklemedate() fonksiyonundaki ikinci parametre bir tarih damgasını belirtmek içindir. Bu parametreyi isteğe bağlı olarak girebilirsiniz. Eğer bir tarih damgası girmezseniz şuanki zaman kullanılacaktır.

Bir sonraki örneğimizde mktime() fonksiyonunu kullanarak bir sonraki günün tarih damgasını oluşturacağız.mktime() fonksiyonu belirtilen bir tarihi Unix tarih damgası şekline dönüştürür.

Kod Yapısımktime(saat,dakika,saniye,ay,gun,dil,yazsaatietkin) 

Page 83: Php  Giriş

Bir gün sonraya gitmek için date("d") değerine bir ekleyerek mktime() ile işimizi çözebiliriz:<?php$yarin = mktime(0,0,0,date("m"),date("d")+1,date("Y"));echo "Yarının Tarihi: ".date("Y/m/d", $yarin);?>Yukarıdaki kodun ekranda çıkacak görüntüsü aşağıdaki şekilde olacaktır.Yarının Tarihi 2009/03/08