Php e Kitap Turkce

Embed Size (px)

Citation preview

  • 7/30/2019 Php e Kitap Turkce

    1/18

    PHP Kod Yaps

    Basit PHP Kod YapsPHP Scriptleri ile biter. PHP Kodlarmz bu arala yazlr. Ayrca ou sunucu

    Yukardaki rnekte grld zere her php komut satr noktal virgl (;) ile biter.

    PHP'de yaz yazdrmann iki basit kodu vardr: echove print, yukarda echo ile yaz yazdrdk.Aklama Nasl Yazlr?PHP Kodlarmz arasna satr ya da uzun blmler halinde aklama eklememiz mmkn. Bunlar php tarafndangrlmez ve bize kolaylk salar:

    PHP Deikenleri

    PHP'de kullanacamz saysal deer, kelime, dize gibi deikenler dolar iareti ($) ile balar. A-Z, a-z, 0-9 ve _karakterlerinden oluabilir.

    PHP'de bir deiken nceden tanmlanmadan kullanlr. rnein bir deiken belirlediimizde, o bu deeri ilk kezalyordur. Buna bal tr, yaps vb deikenlik gsterebilir.

  • 7/30/2019 Php e Kitap Turkce

    2/18

    Bu durumun istisnas DEFINE( tanm, deer ) komutudur. Bylelikle $ iareti ile balamayan deimez bir deeroluturmu oluruz:

    Genel BakPHP'de alfasaysal yani ierisinde harf, say vb. barndran deikenlerin kullanmndan ve bunlara zel iaret vefonksiyonlardan bahsedelim.

    1.Bir alfasaysal deeri belirtirken trnak iareti kullanabildiimiz gibi (') st ayra da kullanabiliriz.

    Bu kodu altrsaydk, sunucu bize aadakini gnderecekti:

    Hatasz Kul Olmaz.

    2.. Trnak iareti kullandmz string deerlerde deikenleri bunlarn ierisinde kullanabilmekteyiz.

    Bu kodu altrsaydk, sunucu bize aadakini gnderecekti:

    7 kedi beni 7!

    3.. Alfasaysal deeri belirtirken trnak ve st ayra kullanmna dikkat etmek gerekir. Aada hata verecek vevermeyecek kullanmlar bir arada gsterilmitir:

  • 7/30/2019 Php e Kitap Turkce

    3/18

    Grld zere bir deiken hangi karakterle baladysa, ierisinde yer alan bu tarz karakterler ka iareti ile (\)belirtilmelidir. Aksi takdirde hata verecektir.

    Kelimeleri Birletirme (.)Sadece string deikenlerde geerli olarak deikenler aras nokta iareti kullanarak kelimeler birletirilebilir.

    Bu kodu altrsaydk, sunucu bize aadakini gnderecekti:

    Hatasz Kul Olmaz. Hatamla Sev Beni.

    strlen() FonksiyonuDeikenin karakter uzunluunu (harf says) verir.

    Bu kodu altrsaydk, sunucu bize aadakini gnderecekti:

    10

    strpos() Fonksiyonu

    Aranlan bir kelime ya da harfin deikenin 1. harfine ne kadar uzaklkta olduunu gsterir (1. harf 0 saylr).

    Bu kodu altrsaydk, sunucu bize aadakini gnderecekti:

    5

  • 7/30/2019 Php e Kitap Turkce

    4/18

    PHP leleri (Operatrleri)

    Aritmetik lemler

    Operator Aklama+ Toplama- karma* arpma/ Blme% Mod (blmnden kalan)++ Arttrma (1 ekleme)-- Azaltma (1 eksiltme)

    Grev lemleri

    Operator rnek Aklama= x = y Eitlik+= x += y x, y ile toplamna eit-= x -= y x, y den farkna eit*= x *= y x, y ile arpmdr/= x /= y x, y ile blmdr

    Karlatrma lemleriOperator Aklama rnek == Eittir 5 == 8 YANLITIR

    != Eit deildir 5 != 8 DORUDUR Eit deildir 5 8 DORUDUR> Byktr 5 > 8 YANLITIR< Kktr 5 < 8 DORUDUR>= Byk eittir 5 >= 8 YANLITIR

  • 7/30/2019 Php e Kitap Turkce

    5/18

    Koullara Dayal lemleri GerekletirmeKod yazarken sklkla kullanlan koul belirteleri, duruma bal olarak ilemler yapmamza olanak salar. Genelyaplar 3 ekildedir:

    1.if ( koul ) - koul gerekleirse komut uygulanr.2.if ( koul ) else ... - koul gereklemez ise ELSE'de belirtilenler uygulanr.3.if ( koul ) elseif (koul ) else ... - lk koul gereklemezse alternatif koullar elseif ile belirtilebilir.rneklerAadaki rnekte $islem 4 deerini alr, koul cmlesi olarak yazdmzda php bize bu yargnn doru olduunuecho da belirttiimiz cmle ile gsterir:

    NOT:Koul gerekleirse yaplacaklar { ... } eklinde belirtilir. Ancak yaplacak i tek satrlk ise direkt altnayazarak ilem yaptrtabiliriz:

    Aadaki rnekte koul gereklemezse ELSE ile php'ye ne yapacan sylyoruz:

  • 7/30/2019 Php e Kitap Turkce

    6/18

    ?>

    Switch Kullanm

    Bir deikene bal koullu ilem yaparken IF, ELSEIF, ELSEIF ... eklinde uzunca bir komut kullanmak hemzamanmz alr, hem php derleyiciyi yorar. Bu gibi durumlarda Switch kodu iimizi kolaylatrr.

    Yukardaki rnekte grld zere $secim deikeninin ald deere gre switch komutuyla ilem yaplmasn

    saladk. Burada case 1:, deikenin hangi deerde olmas durumunda ilem yapacan bize bildirir. break;iseswitch'den klmas gerektiini php ye anlatmamza yarar.default:olarak belirtilen son satr ise hibir koulsalanmad takdirde yaplacak ii tanmlar.

    Aada baka bir rnekte string (alfasaysal) bir deikenle Switch kullandk:

  • 7/30/2019 Php e Kitap Turkce

    7/18

    rnein 4 deikenli bir alfasaysal yapmz var:

    anslyz ki bu modeller 4 tane, ya 400 tane olsayd? Tek tek yazacak mydk? Elbette hayr, nk dize kullanarakiimizi hzlandrabiliriz.

    Saysal DizelerGruba dahil her deikenin bir numara ile belirtildii yapdr. 2 ekilde yaplr.

    armsal DizelerDizeleri armak iin kullandmz saylarn yerini kelimeler alr.

    Dize inde Dize (oklu Dizeler)Bir arraylist ierisinde dizeler kullanabiliriz. Her bir dize iin [] eklenir.

  • 7/30/2019 Php e Kitap Turkce

    8/18

    $aileler = array( "Elialkan" => array("Murat","idem","Esra"), "Keeciolu" => array("Yavuz","Mustafa") ); echo $aileler["Elialkan"][0] . ", Elialkan ailesinin bir yesidir.";?>

    While Dngs

    Birden fazla ilemi ayn anda yapmak, dizelerlerle almak iin dnglerden faydalanrz. Bunlardan biri de While()dngsdr.

    While( koul ) { ... }eklinde kullanm olan bu komutta koul doru (true) olana kadar i ksmdaki kodtekrarlanmaktadr. rnein:

    Aadaki ekilde sonu verir:

    Benim saym 1!Benim saym 2!Benim saym 3!Benim saym 4!Benim saym 5!

    Do ... while DngsEer kodu nce yaptrtacak sonra koulu kontrol edeceksek bu komut bize yardmc olur. Yukardaki ayn ilemi bukomutla yapalm:

    Aadaki ekilde sonu verir:

  • 7/30/2019 Php e Kitap Turkce

    9/18

    Benim saym 2!Benim saym 3!Benim saym 4!Benim saym 5!Benim saym 6!

    For Dngs

    Bir kodu, belirttiimiz ekillerde ve saylarda yaptrtmak iin for komutu bize yardm eder.

    for( deiken, koul, art miktar ) { ... }eklinde kullanlr. rnein:

    Yukarda, FOR( ... ) ierisinde yazdmz kodun anlam: $i 1 dir, $i 5'e eit ya da ondan kk olduu srece $i'yi 1arttr ve ayn ilemleri tekrar et. Aadaki ekilde sonu verir:

    Benim saym 1!Benim saym 2!Benim saym 3!Benim saym 4!Benim saym 5!

    Foreach DngsBir dize (array) ierisindeki tm deerleri listelemek, onlar zerinde ilem yapmak iin bu komuttan yararlanabiliriz.

    Aadaki ekilde sonu verir:

    BirIkiUc

    Fonksiyon

    PHP'de hazrlayacamz zel fonksiyonlarla ilerimizi kolaylatrabilir, trl ilemler iin zaman kazanabiliriz.

  • 7/30/2019 Php e Kitap Turkce

    10/18

    function isim( deikenler ) { ... }eklinde kullanlr. rnein:

    Parametre KullanmakFonksiyonlar baz deikenlerle birlikte kullanabiliriz.

    Aadaki gibi kacaktr:

    Benim adm Murat Kardeimin ad idem

    Parametre says birden fazla da olabilir. Parametreler arasna virgl (,) alarak bu ilemi yaparz. Ayrca bazparametreleri opsiyonel (seime bal) ayarlamamz da mmkn. Bunlar bir rnekte grelim:

  • 7/30/2019 Php e Kitap Turkce

    11/18

    Aadaki gibi grnecektir:

    Murat, 27 yanda. idem, 25 yanda.

    Fonksiyonlarda Deer Dndrmek

    Fonksiyonlar return;komutu ile bir sonucu elde etmemizi salayabilir. Aada bir saynn karesini alan fonksiyonanlatlmtr:

    Bu rnekte grdmz fonksiyonun dndrd deer saysaldr, bir fonksiyon saysal, alfasaysal (string),mantksal (boolean) veya dize (array) dndrebilir. Ayrca bir fonksiyonun ilevini kesip tekrar ana kodlara dnmesi

    iin bo bir ekilde return;kullanlabilir.Form lemleri

    HTML ile hazrladmz bir form PHP yardmyla nasl ilevsel hale getirilir? Bu balkta bunu reneceiz.

    Bir form yaps u ekildedir.

    Adnz:

    Burada METHOD zellii iki ekilde olabilir: "get" ve "post". GET verileri adres satrna ekleyerek gnderir. rneindeneme.php?ad=murat eklinde olacaktr. POST metodu ise verileri ayn dosyaya adres satrna yansmadangnderir. Yani yollanan dosya yine deneme.php adna olacaktr.

    PHP bizler iin form verilerini iki deikende saklar. GET ile alnan verileri $_GET['nesne'], POST ile alnan

    verileri $_POST['nesne']eklinde. Burada nesne olarak belirtiimiz HTML formunda INPUT'larda belirttiimiz"name" zelliindeki deerdir.

    $_GET levini Kullanmak

    Bu ekilde gnderilen veriler adrese eklenirler. Yukardaki form method="get"olarak gnderilseydi, adresimizdeneme.php?ad=murat&yas=27 eklinde olurdu. PHP ile bu verileri ilemek iinse $_GET['ad'] ve $_GET['yas']nesnelerini kullanrdk.

  • 7/30/2019 Php e Kitap Turkce

    12/18

    NOT: Aadaki rnekte isset() bir deikenin tanml olup olmadn kontrol etmemize yarar. Tanmlanmamdeiken kullanmak php de hata mesajlar almanza yol aar. isset() tanmlysa TRUE deilse FALSE olarak dner.

    Adnz:

    $_POST levini Kullanmak

    Bu ekilde gnderilen veriler adrese eklenmez. Yukardaki form method="post"olarak gnderilseydi, adresimizdeneme.php?ad=murat&yas=27 eklinde olurdu. PHP ile bu verileri ilemek iinse $_GET['ad'] ve $_GET['yas']nesnelerini kullanrdk.

    Adnz:

    PHP'de Tarih Yazdrma

    Sunucu saatini PHP'de date( biim, zaman )fonksiyonu ile kullanrz. lk parametre, tarih formatnn naslolacan bildirmemize yarar ve zorunludur.

    d -> 01 - 31 arasnda deer alan gn.m -> 01 - 12 arasnda deer alan ay.Y -> XXXX eklinde 4 haneli yl deeri.G -> 00 - 23 arasnda deer alan saat deeri.i -> 00 - 59 arasnda deer alan dakika deeri.s -> 00 - 59 arasnda deer alan saniye deeri.

  • 7/30/2019 Php e Kitap Turkce

    13/18

    kinci parametre olan zaman belirtmediimiz iin u andaki zaman dikkate alr ve aadaki ekilde grnr:

    25/07/2011 19:13:49

    Tanml bir tarihi gsterirken ikinci parametreyi kullanmalyz. PHP'de Unix saati gsterilir. Geerli Unix saatinigrmek iin time()fonksiyonu kullanlabilir.

    Bir UNIX zaman dilimi tanmlamak iin mktime()fonksiyonu kullanabiliriz. rnein geerli gne 1 ekleyerek yarnyazdralm:

    PHP'de Baka Dosyalardan Faydalanmak

    Tek bir dosyada tm siteye yer vermek, php nin derleme sresini arttrr, ekonomik deildir, zaman ve emeksarfiyat yaratr. Bu sebeple birden fazla para halinde php dosyasndan faydalanmak gerekebilir. Bunlar tekbalarna anlam ifade etmezler ancak dier dosyalardan yardm alarak anlaml hale gelirler.

    Bize bu imkan salayan iki komut bulunmaktadr. Birincisi include( dosya )dieri require( dosya )'dr. Bu ikikomut arasndaki temel fark include kullanarak bir hata ile karlatmzda uyar verir buna karn scriptoluturulmaya devam eder, ancak require kullanldysa derleme annda sonlandrlr.

    imdi yaptmz bir siteyi oluturan 3 para olan ust.php, orta.php ve alt.php yi hazrlayalm:

    // ust.php

    // orta.php

    // alt.php

    Bu dosyay include() kullanarak birletirelim ve index.php olarak kaydedelim:

  • 7/30/2019 Php e Kitap Turkce

    14/18

    // ust.php

    kan dosyann kaynak koduna baktmzda aadaki ekilde yazdrldn grrz:

    ;Merhaba Dnya!;;

    NOT:Bir dosyada kullandmz deikenler ve fonksiyonlar, kendisinden sonraki dosyalarda da geerli olur. Busebeple ayn deikenler kullanlmamasna zen gsterilmelidir

    Dosya lemleri

    fopen() ile Bir Dosya AmakBu fonksiyon bir dosyann ieriine erimek, dosya zerinde ilem yapmak, veri eklemek iin kullanlr.

    Kullanm ekli: fopen( dosya, zellik );

    zellik olarak nitelendirdiimiz 2. parametre dosyann okuma biimidir.

    r -> sadece okumak iinw -> sadece yazmak iina -> dosya zerine eklemek iin

    fopen() ayn zamanda mantksal (bool) deer dndrr, bu deer DORU (true) ise dosya almas baarl, YANLI(false) ise dosya almasnda hata ile karlalmtr.

    fclose() ile Alm Bir Dosyay Kapatmak

  • 7/30/2019 Php e Kitap Turkce

    15/18

    feof( dosya ) ile Dosyann Bittii KontrolAtmz bir dosyann son satrnda olup olmadmz bu deer ile renebiliriz.

    Bir Dosyay Satr Satr Okumak - fgets()

    fgets()Fonksiyonu atmz dosyadan veri almamzda bize yardm eder. Bu veri tek satrlk bir veridir.

    Cookie (erez) Kullanm

    erezler, bir kullancy tanmak amacyla sunucu tarafndan oluturulan bilgilerdir, bu bilgiler direkt olarakkullancnn bilgisayarnda saklanr, belli bir sre geerlidir ve taraycyla (browser) ilikilendirilen bir yapdr.

    Kullanm ekli: setcookie( isim, deer, geerlilik_sresi );

    NOT:3600, saniye cinsinden sredir. 60 x 60 = 3600 den 1 saat bulunur.Bir erez Deerini Elde EtmekSadece tanml bir tanesini elde etmek iin:

    Tamamn listeletmek iin print_r()fonksiyonu ile:

  • 7/30/2019 Php e Kitap Turkce

    16/18

    ?>

    NOT:print_r( dize ) fonksiyonu bir dize ierisindeki tm deerleri ekrana yazdrr. Tm dize (array) tipideikenlerde kullanlabilir.

    Bir erez Deerini SilmekGeerlilik sresini deitirerek sileriz:

    Session (Oturum) Kullanm

    Bir nceki konuda erezlerin kullanc bilgisayarnda saklandn sylemitik. Session olarak tabir edeceimiz bu trise sunucuda saklanan kiisel verilerdir.

    Bir php dosyasna oturum destei vermek iin o dosyann bana session_start();eklenmelidir.Kullanm ekli: $_SESSION['degisken'] = deger;

    Bir Oturum Bilgisinin Varln Kontrol Etmek - isset()Bir oturum bilgisi, sunucu tarafndan ilenmeden geerli deildir. Yani deer verilmemi bir oturum bilgisine

    eriirsek hata kar. Bunu kontrol etmenin yolu isset()fonksiyonudur:

    Bir Oturum Bilgisini Silmek - unset()

    Geerli bir oturum bilgisini unset()fonksiyonu ile kaldrrz:

  • 7/30/2019 Php e Kitap Turkce

    17/18

    E-Mail Gnderimi

    Bunun iin mail()fonksiyonunu kullanrz.Kullanm ekli: mail( alc, balk, mesaj, ayarlar );

    Veritaban lemleri

    MySQL Balantsn Salamak ve Kesmek

    mysql_connect( adres, kullanc, ifre );- Balanmay dener, baarl olursa DORU (true) deeri dndrr.mysql_select_db( veritaban_ad );- lem yapmak zere veritaban seer.mysql_close();- Balanty keser. Bunu yapmazsak balant ak kalr, bu da ziyaretisi yksek bir sitede MySQLsunucusuna eriimde skntya yol aabilir.

  • 7/30/2019 Php e Kitap Turkce

    18/18

    MySQL Sorgusu Gerekletirmek

    mysql_query( sorgu );- Bir SQL komutunu altrmamz salar..