Php Nedir? - enverbagci.net

Transkript

Php Nedir? - enverbagci.net
11.10.2013
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
11.10.2013
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
11.10.2013
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
11.10.2013
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
<?php
…..
?>
Ekrana mesaj yazdırma
 Echo Komutu: Genel kullanımı şöyledir:
 Echo "mesaj";
 Print komutu: Genel kullanımı şöyledir:
 print("Hello World");
4
11.10.2013
Merhaba.php
<?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
11.10.2013
Ç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
 <?php
 echo “İkinci PHP örneği”;
 ?>
Çalıştırmak için Internet Explorer araç çubuğunda
http://localhost/merhaba2.php
12
6
11.10.2013
Phpbilgi.php
<html>
<head>
<title></title>
</head>
<body>
<?php
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; ıİ,Şş,Çç,Ğğ,Öö,Üü
14
7
11.10.2013
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

<?php
$i=43;
echo ($i);
$x=-203; echo ($x);
$y=39992; echo($y);
 ?>
16
8
11.10.2013
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
 <?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
11.10.2013
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
11.10.2013
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.
<?php
$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.
<?php
$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
11.10.2013
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
11.10.2013
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.
<?php
$degisken = "Ankara Ünv.";
unset($degisken);
?>
13
11.10.2013
Değişkenin değerini kontrol
etme
 empty() fonksiyonu:
Bir değişkenin değerinin olup olmadığını kontrol eder.
<?php
$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.
 <?php
 $veri = " www.enverbagci.net
";
 echo trim($veri);
 ?>
14
11.10.2013
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.
 <?php
 $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.
 <?php
 $veri = " www.enverbagci.net
";
 echo ltrim($veri);
 ?>
15
11.10.2013
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.
 <?php
if (is_string("23")) {
echo "dizgedir\n";
} else {
echo "dizge değildir\n";
}
?>
16
11.10.2013
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.
 <?php
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.
 <?php
if (is_float(27.25)) {
echo "float türünde\n";
} else {
echo "float türünde değil\n";
}
?>
17
11.10.2013
strval() fonksiyonu
 Sayısal değişkeni stringe çevirir.
 <?php
 $sayi=90;
 echo gettype($sayi);
 echo gettype(strval($sayi));
// Bu şekilde de yazılabilir.
<?php
$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.
 <?php
$deyim = "42a55bc4t"; //sol başta rakam yoksa
$sayi = intval( $deyim );
echo $sayi; // 42 olacaktır.
sıfır değeri olur.
?>
 $deyim=40.9 gibi float olsa sonuc 40 olurdu.
18
11.10.2013
floatval() fonksiyonu
 String (alfasayısal) bir değeri float bir değere
dönüştürür.
 <?php

$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
11.10.2013
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
11.10.2013
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
11.10.2013
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
11.10.2013
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
<?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
11.10.2013
İslem.php
<?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
11.10.2013
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
11.10.2013
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
11.10.2013
Diziler-Tanımlama Örnekleri
 $meyveler = array("Elma", "Armut", "Muz", "Kiraz");
$meyveler = array('bir' => 'Elma', 'iki' => 'Armut', 'üç' => 'Muz');
$meyveler[0]
$meyveler[1]
$meyveler[2]
$meyveler[3]
=
=
=
=
"Elma";
"Armut";
"Muz";
"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
11.10.2013
Çok boyutlu diziler
<?php
$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";
Otel
Kat1
Kat2
Kat3
echo $otel["kat2"]["oda3"]; // ekrana Mert yazar
?>
Oda1
Ali
Oda2
Ahmet
Oda3
Ömer
Oda1
Hasan
Oda2
Kenan
Oda3
Mert
Oda1
Ayşe
Oda2
Fatma
Oda3
Hatice
Çok boyutlu diziler
<?php
$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
11.10.2013
Ç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 :
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$sonuç = count($a);
// $sonuç == 3
?>
29
11.10.2013
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 :
<?php
$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
 <?php
$dizi = array(1, 2, 3, 4);
foreach ($dizi as $deger) {
echo "Değer: $deger<br />";
}
?>
30
11.10.2013
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 :
<?php
$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.
 <?php
$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
11.10.2013
Dizilerde Kullanılan Fonksiyonlar
 array_shift(): Dizinin ilk elemanını siler.
 <?php
$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.
 <?php
$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
11.10.2013
Dizilerde Kullanılan Fonksiyonlar
 array_sum(): Dizinin değerlerinin
toplamını bulur.
<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";
Çıktısı:
sum(a) = 20
sum(b) = 6.9
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>
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.
 <?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Irix var";
}
if (in_array("mac", $os)) {
echo "Mac var";
}
?>
33
11.10.2013
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.
<?php
$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)
<?php
$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
11.10.2013
Dizilerde Kullanılan Fonksiyonlar
 sort: Dizi elemanlarını küçükten büyüğe sıralar.
<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
Çıktısı
echo "fruits[" . $key . "] = " . $val . "\n";
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.
 <?php
$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
11.10.2013
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 ) {
if($user_name=="") {
echo “Username girmediniz.";
}
case 1 ;
echo ("1 nolu sınıf");
break;
else if($user_name!="ugur") {
echo "Yanlış username";
}
case 2 ;
echo ("2 nolu sınıf");
break;
else {
echo "Merhaba $user_name";
}
default:
echo ("3 nolu sınıf");
}
?>
?>
36
11.10.2013
sart.php
<?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
<?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
11.10.2013
Sart3.php
<?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
<?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
11.10.2013
sartmeyve.php
<?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
<?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
11.10.2013
Sart6.php
<?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.






<?php
for ($i=1;$i<100;$i++)
{
printf("$i<br>");
}
?>
40
11.10.2013
While Döngüsü
 <?php
 $i=1;
 while ($i<100)
 {
printf("$i<br>");
$i++;


 }
 ?>
For Örneği
 100’den geriye 4’er 4’er yazınız.
 <?php
 for ($i=100; $i>1; $i-=4)
 {

printf("$i<br>");
 }
 ?>
41
11.10.2013
Do-While Döngüsü
 <?php
 $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.
 <?php
 for ($i=0; $i<=100; $i+=2)
 printf("$i<br>");
 ?>
42
11.10.2013
Do-While ile İşlemler
 0,2,4,6,8…100 şeklinde çift sayıları yazdırınız.
 <?php
 $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.








<?php
$i=0;
while ($i<=100)
{
printf("$i<br>");
$i=$i+2;
}
?>
43
11.10.2013
For ile İşlem
 1+3+5…+99 toplamını bulunuz?
 <?php
 $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?
<?php
$toplam=0;
$i=1;
while ($i<100)
{
$toplam=$toplam + $i;
$i+=2;
}
printf("While ile 1 den 100 e kadar
Toplam:$toplam<br>");
 ?>









44
11.10.2013
Do-While ile İşlem
 1+3+5…+99 toplamını bulunuz?
 <?php
 $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
11.10.2013
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
11.10.2013
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)
Fonksiyonun Çağrılması:
yaz();
$isim=“Ali”;
$soyisim=“Ak”;
yaz2 ($isim, $soyisim);
{
echo “merhaba $ad $soyad”;
}
 Yukarıda ilk yaz fonksiyonu parametre almamıştır, ikincisi ise ad ve
soyad parametrelerini almıştır.
47
11.10.2013
Fonksiyonlar
 //Parametresiz
 function yaz()
 {
echo “merhaba fonksiyon”;

 }
 //Parametreli
Fonksiyonun Çağrılması:
yaz();
$deger=“merhaba
fonksiyon”;
mesaj($deger);
 function mesaj($deger)
 {
echo $deger;

 }
Fonksiyonlar - Örnek
 //Aşağıdaki fonksiyon verilen sayı aralığını toplar.
<?php













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
11.10.2013
Fonksiyonlar - İşlemler
<?php
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
<?php
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
11.10.2013
Fonksiyonlar - Faktöriyel
<?php
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
11.10.2013
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
11.10.2013
Getdate fonksiyonunda
kullanılan parametreler
"seconds"
Saniyelerin sayısal
gösterimi
0'dan 59'a kadar
"minutes"
Dakikaların sayısal
gösterimi
0'dan 59'a kadar
"hours"
Saatlerin sayılsal
gösterimi
0'dan 23'e kadar
"mday"
Ayın günlerinin sayısal
gösterimi
1'den 31'e kadar
"wday"
Haftanın günlerinin
sayılsal gösterimi
(Pazar için) 0'dan
(Cumartesi için) 6'ya
kadar
"mon"
Ayın sayısal gösterimi
1 'den 12'ye kadar
"year"
Yılın 4 haneli sayısal tam
gösterimi
Örnek: 1999 ya da 2003
gibi
"yday"
Yılın gününün sayısal
gösterimi
0'dan 365'e kadar
"weekday"
Haftanın gününün
metinsel tam gösterimi
Sunday'dan Saturday'ye
"month"
Ayın metinsel tam
gösterimi, Ocak ya da
Mart gibi
January'dan December'a
kadar
date() fonksiyonu
 Yerel tarihi/saati biçimlendirir.
biçim karakteri
Gün
Açıklama
Örnek sonuç
---
---
d
Ay günlerinin sıfır dolgulu iki
01'den 31'e
haneli gösterimi
D
Ay günlerinin üç harfli
metinsel gösterimi
Pzt'den Paz'a
j
Ay günlerinin sıfır dolgusuz
gösterimi
1'den 31'e
l (küçük 'L' harfi)
Hafta günlerinin tam
metinsel gösterimi
Pazar'dan Cumartesi'ye
N
Hafta günlerinin ISO-8601
standardında sayısal
gösterimi (PHP 5.1.0'da
eklenmiştir)
1'den (Pazartesi için) 7'ye
(Pazar için)
S
Ay günleri için 2 karakterli
İngilizce sıralama ekleri
st, nd, rd ya da th. j ile
uyumlu çalışmaktadır.
w
Hafta günlerinin sayısal
gösterimi
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
11.10.2013
date() fonksiyonu
Hafta
---
---
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
Ayın tam metinsel
gösterimi, Ocak ya da
Mart gibi
January'den December'a
m
Ayın sıfır dolgulu sayısal
gösterimi
01'den 12'ye
M
Ayın üç karakterli,
metinsel kısa gösterimi
Jan'dan Dec'e kadar
n
Ayın sıfır dolgusuz
sayısal gösterimi
1'den 12'ye kadar
t
Belirtilen ayın gün sayısı
28'den 31'e
W
Ay
date() fonksiyonu
Yıl
---
---
L
Artık yıl olduğunda
Eğer artık yılsa 1, değilse
0.
o
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.
Örnekler: 1999 ya da 2003
gibi
Y
Yılın 4 haneli sayısal, tam
gösterimi
Örnekler: 1999 ya da 2003
gibi
y
Yılın iki haneli gösterimi
Örnekler: 99 ya da 03 gibi
53
11.10.2013
date() fonksiyonu
Saat
---
---
a
Küçük harfli öğleden önce
am ya da pm
ve öğleden sonra
A
Büyük harfli öğleden önce
AM ya da PM
ve öğleden sonra
B
Swatch İnternet saati
000'dan 999'a
g
Saatin, 12-saatlik sıfır
dolgusuz gösterimi
1'den 12'ye
G
Saatin, 24-saatlik sıfır
dolgusuz gösterimi
0'dan 23'e
h
Saatin, 12-saatlik sıfır
dolgulu gösterimi
01'den 12'ye
H
Saatin, 24-saatlik sıfır
dolgulu gösterimi
00'dan 23'e
i
Sıfır dolgulu dakika
gösterimi
00 ile 59 arasında
s
Sıfır dolgulu saniye
gösterimi
00 ile 59 arasında
u
Mikrosaniye (PHP 5.2.2
sürümüyle eklenmiştir)
Örneğin: 654321
date() fonksiyonu
Zaman dilimi
---
---
e
Zaman dilimi belirteci
Örnekler: UTC, GMT,
Europe/Istanbul
I (büyük ı)
Yaz saati uygulaması var
mı?
Varsa 1, yoksa 0.
O
Saat olarak Greenwich
zamanı (GMT) farkı
Örneğin: +0200
P
Saat ve dakika olarak
Greenwich zamanı
(GMT) farkı
Örneğin: +02:00
T
Zaman dilimi kısaltması
Örnekler: EST, EET gibi
Z
Saniye cinsinden saat
farkı. UTC'nin batısı
-43200'den 50400'e
daima negatif, doğusu ise
daima pozitif değerlidir.
54
11.10.2013
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)
 <?php
$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
11.10.2013
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
11.10.2013
mktime() fonksiyonu
 <?php
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
11.10.2013
floor() fonksiyonu
 Ondalık sayıların küçük sayıya yuvarlanması için
kullanılır.
 <?php
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.
 <?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>
58
11.10.2013
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)
 <?php
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)
<?php
echo pow(2, 8); // 256
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
?>
59
11.10.2013
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.
 <?php
echo min(2, 3, 1, 6, 7); // 1
echo min(array(2, 4, 5)); // 2
?>
60
11.10.2013
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.
 <?php
$pizza = "dilim1 dilim2 dilim3 dilim4 dilim5 dilim6";
$dilimler = explode(" ", $pizza);
echo $dilimler[0]; // dilim1
echo $dilimler[1]; // dilim2
?>
61
11.10.2013
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.
<?php
$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.
<?php
$metin="Bir kaç kelam :) ... ";
echo rtrim($metin);
?>
62
11.10.2013
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.
<?php
$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ı )
 <?php
$sayi = 1234.56;
$trformat = number_format($sayi, 2, ',', '.');
echo $trformat;
 // 1.234,56
?>
63
11.10.2013
printf() fonksiyonu
 Biçimli bir dizgi çıkartır.
 <?php
 $num=1000;
 $kelime="emyo";
 printf('Sayı:%d',$num);
 printf('Sayı:%s',$kelime);
 ?>
sprintf() fonksiyonu
 Biçimli bir dizge çıkartır.
 <?php
 $num=1000;
 $kelime="emyo";
 echo sprintf('Sayı:%d',$num);
 echo sprintf('Sayı:%s',$kelime);
 ?>
64
11.10.2013
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
 <?php
$input = "Ayran";
echo str_pad($input, 10);
echo str_pad($input, 10, "-=", STR_PAD_LEFT);
echo str_pad($input, 10, "_", STR_PAD_BOTH);
echo str_pad($input, 6 , "___");
?>
// "Ayran " üretilir
// "-=-=-Ayran" üretilir
// "__Ayran___" üretilir
// "Ayran_" üretilir
65
11.10.2013
str_repeat fonksiyonu
 Bir dizgeyi yineler.
 <?php
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)
<?php
$veri = "İstanbul güzel bir şehir?";
echo str_replace("güzel","pahalı",$veri);
?>
66
11.10.2013
strcmp() fonksiyonu
 İkili olarak dizge karşılaştırması yapar.
 <?php
 $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.
 <?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>
67
11.10.2013
strtolower fonksiyonu
 Bir dizgenin harflerini küçük harfe çevirir.
 <?php
 $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.
 <?php
 $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
11.10.2013
substr() fonksiyonu
Dizgenin bir kısmını döndürür.
Kullanımı:
substr (dizge , başlangıç [, uzunluk ] )
<?php
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
11.10.2013
wordwrap() fonksiyonu
 Bir dizgeyi istenilen yerden alt satıra geçirir.
 Kullanımı:
 wordwrap ( dizge [, genişlik [, satırsonu [, kes = false/true
]]] )
 <?php
$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ı
 <?php echo $_SERVER['SERVER_ADDR']; ?>
 Sunucunun IP adresi alınır.
 <?php echo $_SERVER['SERVER_NAME']; ?>
 Sunucu ismi öğrenilir.
 <?php echo $_SERVER['SERVER_SOFTWARE']; ?>
 Sunucunun işletim sistemi öğrenilir.
70
11.10.2013
Server Fonksiyonları
 <?php 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ı
 <?php echo $_SERVER['DOCUMENT_ROOT']; ?>
 Php dosyalarının çalıştığı klasörün adı
 //localhost çıktısı C:/wamp/www/
 <?php echo $_SERVER['HTTP_USER_AGENT']; ?>
 Ziyaretçinin tarayıcısıyla ilgili bilgiler öğrenilir.
71
11.10.2013
Server Fonksiyonları
 <?php echo $_SERVER['REMOTE_ADDR']; ?>
 Ziyaretçinin ip adresini alır.
 <?php echo $_SERVER['SERVER_PORT']; ?>
 Severin portu öğrenilir.
 <?php echo $_SERVER['SCRIPT_NAME']; ?>
 Çalışan dosyanın adı öğrenilir.
72
11.10.2013
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 = "[email protected]";
$konu = "Mail konusu";
$mesaj = "PHP Mail() Fonksiyonu";
mail("$adres","$konu","$mesaj");
echo "mail gönderildi";
?>
73
11.10.2013
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
11.10.2013
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
11.10.2013
<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"
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.
size = "değer"
"text" ve "password" elemanlarında karakter sayısını, diğerlerinde
ise piksel cinsinden genişliği belirtmek için kullanılır.
maxlength = "değer"
"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.
checked = "değer"
Sadece "radio" ve "checkbox" elemanlarında seçili elemanı "on"
olarak belirtmek için kullanılır. Diğerlerinde yoksayılır.
src = "dosya ismi"
"image" elemanında resim dosyasını belirtmek için kullanılır.
alt = "metin"
readonly
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.
disabled
Veri girişi engellenecek elemanlar içindir.
align = "left|center|right"
76
11.10.2013
<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
11.10.2013
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
11.10.2013
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
11.10.2013
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
11.10.2013
<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
11.10.2013
<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">İşkembe</option>
</optgroup>
<optgroup label="Yemekler">
<option value="y1">İmambayı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
11.10.2013
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
11.10.2013
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.
 <?php
 $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
11.10.2013
Ö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>
<?php
echo "<b>Adınız:</b> ",$_GET["adi"],"<br>";
echo "<b>Soyadınız:</b> ",$_GET["soyadi"],"<br>";
?>
</body>
</html>
85
11.10.2013
Ö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
11.10.2013
Örnek2 (Devam)
<!--index.php-->
<html>
<body>
<?php
$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>
<?php
echo "<b>Sayı 1:</b> ",$_GET["sayi1"],"<br>";
echo "<b>Sayı 2:</b> ",$_GET["sayi2"],"<br>";
?>
</body>
</html>
87
11.10.2013
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/>
<?php
Yaz.php
$adi = $_POST[adiniz];
$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
11.10.2013
Ö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
11.10.2013
Örnek Devam
<!--topla.php-->
<html>
<body>
<?php
$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
11.10.2013
Ö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>
<?php
$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
11.10.2013
Ö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
11.10.2013
Örnek3 Devam
<!--giris.php-->
<html>
<body>
<?php
// İ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
11.10.2013
Ç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
11.10.2013
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
11.10.2013
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.
<?php
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
11.10.2013
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
11.10.2013
Cookie Kontrolü
 Cookie’nin tanımlı olup olmadığını kontrol etmek için isset()
fonksiyonunu kullanabilirsiniz.
<?php
if(isset($_COOKIE["çerezim"]))
{
echo "cookie tanımlanmış";
}
else
{
echo "cookie tanımlanmamış!";
}
?>
98
11.10.2013
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
11.10.2013
Session_start()
<?php
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
11.10.2013
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
11.10.2013
Ö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





<?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
<?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
11.10.2013
Örnek Üyelik Sistemi
 Giriş bilgilerini içinde tutacağımız ayarlar.php
dosyamızı oluşturuyoruz.
 Ayarlar.php
<?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
11.10.2013
Örnek Üyelik Sistemi
 Şimdi de giriş
bilgilerinin
denetleneceği ve
sonucuna göre
işlem yapacağımız
denetim.php
dosyasını
oluşturuyoruz.
<?php
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
11.10.2013
Örnek Üyelik Sistemi
 Şimdi yonetim.php isimli yönetim sayfasını
oluşturalım
<?php
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
11.10.2013
Örnek Üyelik Sistemi
 Şimdi giriş yapan kullanıcının çıkış yapması için
cikis.php dosyasını oluşturalım
<?php
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
11.10.2013
Aktif Dosyaya Harici Dosya
Ekleme
 include(); Belirtilen dosyayı başka bir dosyaya ekler ve
içeriğini değerlendirir.
d2.php
<?php
echo "Bir $renk $meyve"; // -> Bir
include ‘d1.php';
echo "Bir $renk $meyve"; // > Bir yeşil elma
d1.php
<?php
$renk = 'yeşil';
$meyve = 'elma';
?>
?>
Dosya Kontrolü
 file_exists(); Bir dosya veya dizinin mevcut olup
olmadığına bakar.
<?php
$dosya = '/bir/yol/dosya.txt';
if (file_exists($dosya)) {
echo "$dosya diye bir dosya var";
} else {
echo "$dosya diye bir dosya yok";
}
?>
107
11.10.2013
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
11.10.2013
Dosya Özelliklerini Öğrenme
 is_readable(); Bir dosyanın mevcut ve okunabilir olup
olmadığını döndürür.
<?php
$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.
<?php
$dosya = 'dnm.txt';
if (is_writable($dosya)) {
echo 'Dosyaya yazılabilir';
} else {
echo 'Dosyaya yazılamaz';
}
?>
109
11.10.2013
Dosya Özelliklerini Öğrenme
 is_executable(); Bir dosyanın çalıştırılabilir bir dosya
olup olmadığını döndürür.
<?php
$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.
<?php
// çıktısı:
// somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . '
bytes';
?>
110
11.10.2013
Dosya Özelliklerini Öğrenme
 fileatime(); Dosyaya son erişim zamanını döndürür.
<?php
// Çı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.
<?php
// Çı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
11.10.2013
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
<?php
$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";
}
?>
<?php
/*
* 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
11.10.2013
Dosya Silme
 unlink(); Bir dosyayı siler.
<?php
$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
11.10.2013
Dosya Açma Türleri
Açma Türü
Açıklama
'r'
Sadece okumak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir.
'r+'
Hem okumak hem de yazmak için açılır; dosya konumlayıcı dosyanın başlangıcına yerleştirilir.
'w'
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.
'w+'
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'
Sadece yazmak için açılır; dosya konumlayıcı dosyanın sonuna yerleştirilir. Dosya mevcut değilse oluşturulmaya çalışılır.
'a+'
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.
'x'
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
 <?php
$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:[email protected]/some
file.txt", "w");
?>
114
11.10.2013
Dosya Kapatma
 fclose(); Açık bir dosya tanıtıcısını kapatır.
<?php
$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.
<?php
$dt = fopen("/tmp/inputfile.txt", "r");
if ($dt) {
while (!feof($dt)) {
$tampon = fgets($dt, 4096);
echo $tampon;
}
fclose($dt);
}
?>
115
11.10.2013
Dosya İçeriğini Okuma
 feof(); Bir dosya tanıtıcısı üzerinde konum dosya
sonunda mı diye bakar.
<?php
$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 )
<?php
// 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
11.10.2013
Dosya İçeriğini Okuma
 fgetc(); Dosya içeriğini karakter karakter okur.
<?php
$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
11.10.2013
fseek() örneği
 <?php
$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 ] )
<?php
$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
11.10.2013
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
 <?php
$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
11.10.2013
Klasör İçeriğini Listeleme
 opendir(); Bir klasör açar.
 readdir(); Açılmış bir klasörün içini okur.
<?php
$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
11.10.2013
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.
<?php
mkdir("/dizinim/icin/bir/yol", 0777);
?>
Klasör Silme
 rmdir(); Dizin siler.
<?php
if (!is_dir('misaller')) {
mkdir('misaller');
}
rmdir('misaller');
?>
121

Benzer belgeler