Upload
cmkandemir
View
570
Download
3
Embed Size (px)
Citation preview
12.10.2015
1
İnternet Tabanlı Programlama
PHP Temelleri
Yrd.Doç.Dr. Celal Murat KANDEMİRESOGÜ – Eğitim Fakültesi - BÖTEtwitter.com/cmkandemir
Gerekli Yazılımlar
� Apache Web Sunucusu (http://www.apache.org)
� MySQL (Veritabanı) (http:// www.mysql.com)
� PhpmyAdmin (http://www.phpmyadmin.net/)
� Açık kaynak kod
� Windows ve Linux
� Kurulumun bilgileri ilgili sitelerde mevcuttur.
� Toplu olarak kurulan paketler de mevcuttur• Xamp:
http://ogrenmeyonetimsistemleri.blogspot.com.tr/2014/03/xampp-
gelistirme-ortamnn-kurulumu.html
• WampServer
12.10.2015
2
Gerekli Yazılımlar
� Programlama IDE / Metin Editörü
� NotePad++
� http://notepad-plus-plus.org/download/v6.6.9.html
� Visual Studio Code
� https://code.visualstudio.com/
� Sublimetext
� http://www.sublimetext.com/2
� Aptana Studio 3
� http://www.aptana.com/products/studio3/download
PHP Temelleri
Yrd.Doç.Dr. Celal Murat KANDEMİRESOGÜ – Eğitim Fakültesi - BÖTEtwitter.com/cmkandemir
12.10.2015
3
İçerik
1. PHP, ve Web Sunucu nedir?
2. Web uygulamaları
3. Söz dizimi (Syntax)
4. Değişkenler, değişken tipleri
5. Temel fonksiyonlar
6. Bazı ön tanımlı değişkenler
7. Strings escaping
8. PHP – avantajlar ve dezavantajlar
PHP, ve Web Sunucu
Nedir?
12.10.2015
4
PHP Nedir?
� "PHP Hypertext Preprocessor"
� Betik (Scripting) dili
� Dinamik içerik üretimi – örneğin HTML ve JSON
� Veri tabanı etkileşimi (CRUDs)
� Sunucu tarafında veya komut satırından çalıştırma
� HTML içine gömülebilir.
� İlk kez 1995’te Apache için modül amaçlı tanıtıldı
� Açık kaynak, C dilinde yazıldı
� Perl ve C benzeri
HTML Nasıl Çalışır1. URL girilir
2. IP bulunur
3. Ana sayfa isteği
4. İstek alınır
5. Sayfa getirilir
6. Sayfa gönderilir
7. Sayfa görüntülenir
8
12.10.2015
5
PHP Nasıl Çalışır1. URL girilir
2. IP bulunur
3. Ana sayfa isteği
4. İstek alınır
5. Sayfa getirilir
6. PHP içeriyor mu?
7. PHP işlenir
8. SQL işlenir (varsa)
9. Veri alınır
10. Sayfa gönderilir
11. Sayfa görüntülenir
9
Web sunucu nedir?
� HTTP istekleri ve geri döndürülecek cevapların işlenmesinden sorumlu bilgisayar programıdır.
� HTTP istekleri (request) alır
� İstenen kaynakları bulur veya bir program çalıştırır
� Bulunan kaynakları çıktı olarak tarayıcıya gönderir
� En bilinen web sunucular Apache, IIS, NodeJS, nginx, ligHttpd ve diğerleri
� "LAMP" – Linux, Apache, MySQL, PHP/Perl – bir web sunucu üzerinde en çok kullanılan yazılımlardır
12.10.2015
6
Web uygulamaları
Web uygulamaları
� Web üzerinden erişilebilen uygulamalara verilen isimdir
� Web sunucular üzerinde çalışır
� Genellikle PHP, Perl, Java, ASP gibi sunucu tarafında çalışan diller ile geliştirilirler
� Dinamik olarak üretilmiş içeriklere sahiptirler
� Çoğunlukla üç katmanlı mimaridedirler (three-tier) - web server, uygulama ve veritabanı
� Sadece web sayfalarından oluşmazlar
12.10.2015
7
Web uygulamaları- Örnekler
� Gmail
� SkyDrive / Live.com
� Google Office / Windows Office
� Prezi
� Creately
� Slideshare
� Web tarayıcıları üzerinden erişilerek kullanılan neredeyse herşey ☺
13
Merhaba PHP
� PHP kodları genellikle ".php" uzantısına sahip dosyalarda bulunurlar.
� Yapılandırılabilirler
� PHP kodları HTML belge içine yerleştirilebilirler
<html><head><title>Merhaba dünya sayfası</title></head><body>Merhaba HTML!</body></html>
12.10.2015
8
<html><head><title>Merhaba dünya sayfası</title></head><body><?php print ("Merhaba PHP!"); ?></body></html>
Merhaba PHP
� PHP kodları genellikle ".php" uzantısına sahip dosyalarda bulunurlar.
� Yapılandırılabilirler
� PHP kodları HTML belge içine yerleştirilebilirler
<html><head><title>Merhaba dünya sayfası</title></head><body><?php print ("Merhaba PHP!"); ?></body></html>
Merhaba PHP
� PHP kodları genellikle ".php" uzantısına sahip dosyalarda bulunurlar.
� Yapılandırılabilirler
� PHP kodları HTML belge içine yerleştirilebilirler
<?php PHP kod başlangıcı ?> PHP kod sonu
12.10.2015
9
Merhaba PHP – Dosyayı nereye koyacağız?
� webroot klasörü
� XAMMP – htdocs/
� WAMP – www/
� Webroot klasörü yapılandırılabilir
� http://localhost/tam/klasör/yolu/dosyaAdi.php
� Adresi üzerinden erişilebilir
17
Söz Dizimi - Syntax
12.10.2015
10
PHP Söz Dizimi� PHP kodları <?php ile başlar ve ?> ile biter
� Sunucu yapılandırmasına bağlı olarak <? İle de
başlayabilir (Kısa stil) – ama bu kötü bir uygulamadır!
� XML açısından <?php - ?> bölümü " işlem yönergesi"
(processing instruction) olarak adlandırılır
� PHP, Perl söz dizimini takip eder
� Basitleştirilmiş
� Yapısal (Artık aynı zamanda OOP)
� C ve Java benzeri
PHP Söz Dizimi
� PHP Betik bir veya daha fazla ifadeden oluşur
� İfadeler PHP Preprocessor tarafından tek tek ele alınır
� Herbir ifade noktalı virgül ";" ile sonlanır
� İlk betiğimiz tek ifadeden oluşmaktadır:
� print fonksiyonunun çağrılması
<?phpprint («Merhaba PHP!"); // bu bir ifade?>
12.10.2015
11
PHP Söz Dizimi
� PHP betik sınırsız sayıda ifadeden oluşabilir
� Bazı fonksiyonlar parantez kullanılmadan çağrılabilir
� Koda yorum satırları eklenebilir
� Tek satır yorum "//", "#" veya yorum bloğu için "/*" ve"*/" arasında
� Sadece "/*" – "*/" çok satırlı yorumlar için kullanılabilir
� Yorumlar çalıştırılmazlar ve tarayıcıya gönderilmezler
<?phpprint "<div>";print "Merhaba PHP!";print "</div>";?>
PHP Söz Dizimi
� Kısa açılış etiketi <?=
� İfadenin tarayıcıda yazdırılmasına zorlar
� print ile aynıdır
� ";" noktalı virgül ihmal edilebilir
<html><head><title>Merhaba dünya sayfası</title></head><body><?="Merhaba PHP!" ?></body></html>
12.10.2015
12
Değişkenler
� Değişken rakamla başlayamaz.
� Değikenler içinde özel karakterler kullanılamaz. Sadece harfler, sayılar ve _ işareti kullanılabilir.
� 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; ıİ,Şş,Çç,Ğğ,Öö,Üü
PHP Değişkenler
12.10.2015
13
PHP Değişkenler� PHP’deki tüm değişkenler (sabit değişkenler hariç)
dolar $ işareti ile başlar(Perl stili)
� PHP "type-less" bir dildir� Değişkenler bir tür ile bağlantılı değildir. farklı türde
değişken değerleri saklanabilir� int a = 5; şeklinde tanımlanmaz, $a = 5; yazmak
yeterlidir
� Herbir değişken değerin atandığı ilk yerde tanımlanmış olur� Tür belirtme hatalarının önüne geçilir!� Değerin türü değişken türünü belirler
<?php // $output string değişkeni tanımla$output = "<div>Merhaba PHP!</div>"; print $output;?>
PHP Değişken Türleri
� Sayısal (real veya integer)
� Ondalık ayraç noktadır ".", virgül ", " değil
� Boolean (true veya false)
� PHP değişkenleri true, TRUE, True veya false, FALSE, False olarak tanımlanır
� Empty string, sıfır ve bazı diğer değerler dolaylı olarak boolean ifadeler içinde "false" değerine çevrilirler
� boolean uygun kullanılmadığında probleme sebep olabilir
12.10.2015
14
PHP Strings
� String değerler
� String değerler tek veya çift tırnak içinde yazılabilir
� Başlangıç ve bitiş tırmakları aynı olmalı
<?$output1 = "Merhaba PHP!"; $output2 = 'Tekrar merhaba!';?>
PHP Diziler
� Array’ler kümelenmiş değerlerdir – her bir değer array içinde bir anahtara (key, index) atanmıştır.
� PHP ilişkisel dizileri destekler – key/index nümerik, string veya diğer sayısal türlerde olabilir
� Key/index dizi boyunca tekil olmalıdır
� Dizideki değerler farklı türlerde olabilir
� PHP diziler dinamiktir – yaratılırken belli bir büyüklükte tanımlanmaları gerekmez
12.10.2015
15
PHP Arrays
� PHP diziler array anahtar kelimesi ile tanımlanır
� "=>" anlamı "işaret etmek" tir
� Eğer anahtarlar belirtilmediyse otomatik olarak sıfırdan
başlayan değerler verilir
<?
// basit dizi
$arr = array ("a", "b", 7);
// bu ifade $arr[0], $arr[1] ve $arr[2]
// sırasıyla "a", "b" ve 7 değerlerini içeren
// diziyi üretir
$arr2 = array ("one" => 1, "two" => 2);
// bu ifade $arr2["one"] ve $arr2["two"]
// sırasıyla 1 ve 2 değerlerini içeren
// diziyi üretir
?>
PHP Diziler
� Dizi değerlerine "[" ve "]" arasındaki anahtar(key)/index değeri ile erişilir
� Diziler esnektirler ve değer türleri ve anahtar karışık olabilir
<?$arr = array ("a", "b", 7, "bir" => 1, "iki" => 2, "diger" => array(1,2,3));// anahtar/index türleri karışık:// $arr[0] => "a" ve $arr["bir"] => 1// $arr["diger"] yine bir dizidir// $arr["diger"][0]" => 1print $arr["diger"][2]; // tarayıcı çıktısı 3?>
12.10.2015
16
PHP NULL Değer
� PHP’de null olarak isimlendirilen özel bir değer vardır ve değişkenin bir değer almadığını gösterir
� Herhangi bir türde verinin olmadığını göstermek için kullanılır
� Tanımsız "undefined" değişkenden farklıdır!
� Boş string veya sıfır değerinden farklıdır<?$null_variable = null;?>
PHP Değişken Türleri
� PHP "object" değişken türünü destekler
� "Resource" (kaynak ) değişken türü
� Resouce türü, değişken değerinin bir kaynak veya veriye referans değeri tutar.
� Örnek – açık bir dosya, veri tabanı bağlantısı, v.b
12.10.2015
17
PHP Temel İfadeler
� PHP ifadeleri C dilindekine benzer
� "=" – değişkenlere değer atamak için kullanılır
� +, -, /, *, % - aritmetik işlemler
� ==, <=, >=, !=, <, > - karşılaştırma
� +=, -=, /=, *=, %=, ++, --,– önek/sonek operatörler
� ( and ) – ifade birleştirme için
� &, |, >>, <<, ^, ~ - bit bazlı operatörler
PHP Basic Expressions 2
� String operatörleri
� "." (period) – string birleştirme
� ===, !== karşılaştırma
� ==, != operatörlerinden farklıdır.
� "10"==10 işleminde sonuç true iken "10"===10karşılaştırmasında sonuç false
� Tam karşılaştırma – $a === $b :
� TRUE $a değişken değeri $b değişken değerine eşitse, ve aynı değişken türündeyseler.
� $a = $b = $c = 7;
12.10.2015
18
PHP Sabitler
� PHP’de sabit değişkenler define fonksiyonu ile tanımlanırlar
� Değeri değiştirilemez
� $ sembolü ile başlamaz
� Herhangi bir değeri tutabilir
<?define ('DEGISKEN_ADI', 123);// DEGISKEN_ADI, 123 değerini alırprint DEGISKEN_ADI; // 123 tarayıcı çıktısı verir?>
Temel Fonksiyonlar
12.10.2015
19
Bazı Temel Fonksiyonlar
� print fonksiyonunu gördük
� echo fonksiyonu da print ile aynıdır. printfonksiyonu bir değer geri döndürür.
� print_r(array) – key/index değerleri ile birlikte dizi değerleri tarayıcıya yazar.phpinfo() – sunucu, PHP ayarları, kurulu modüller v.b bir sayfa oluşturur
<?echo "123"; // tarayıcıda 123 çıktısı verir?>
Ön Tanımlı Değişkenler
12.10.2015
20
Ön Tanımlı Değişkenler
� PHP ön tanımlı birçok değişken ve sabit sağlar
� __FILE__, __LINE__, __FUNCTION__,
__METHOD__, __CLASS__ - hata ayıklama bilgisi içerirler.
� PHP_VERSION, PHP_OS, PHP_EOL,
DIRECTORY_SEPARATOR, PHP_INT_SIZE
ve diğerleri farklı platform desteği sağlayan uygulamaların kolaylıkla geliştirilmesine yardımcı olurlar.
Ön Tanımlı Değişkenler
� $_SERVER – dizi değişkendir, web sunucusuna ait
bilgileri tutar – headers, klasör yolları ve script yerleri
� DOCUMENT_ROOT – web sunucu yapılandırmasında
sitenin kök klasörüdür
� SERVER_ADDRESS, SERVER_NAME,
SERVER_SOFTWARE, SERVER_PROTOCOL
� REMOTE_ADDR, REMOTE_HOST, REMOTE_PORT
� PHP_AUTH_USER, PHP_AUTH_PW,
PHP_AUTH_DIGEST
� Ve diğerleri
12.10.2015
21
Ön Tanımlı Değişkenler
� $_GET, $_POST, $_COOKIE dizileri URL’den gelen gönderim gönderi ve cookie bilgilerini tutar
� $_FILES çok parçalı gönderim istekleri üzerinden başarılı yüklenen dosya bilgilerini tutan dizidir.array holds information for successfully
� $_SESSION bir oturumda saklanan değişken değerlerini tutan dizidir.
Değişken değişkenleri
� PHP $$ sözdizimini destekler- değişken değerinden değişken tanımlanır
<?$str1 = 'test';$test = 'abc';echo $$str1; // abc tarayıcı çıktısı üretir?>
12.10.2015
22
Strings Escaping
Strings escaping
� String’lerdeki özel karakterlerden ters bölü işareti ile kaçılır (C stili)
� Özel karakterler:
� \n – yeni satır (new line) (10 in ASCII)
� \r – carriage return (13 in ASCII)
� \t – yatay tab
� \v – düşey tab
� \\ - ters bölü
� \$ - dollar işareti
� \" – çift tırnak
$str1 = "bu bir\"PHP\"";
12.10.2015
23
String escaping
� Tek tırnak string’lerde de kullanım aynı şekildedir
� Fark \" yerine \' kullanılmasıdır
� Tek veya çift tırnak kullanılan stringlerde ters bölü diğer tüm karakterlerin önünde tarayıcıda görüntülenecektir!
$str1 = 'Arnold dedi ki: "I\'ll be back"';
String’ler içindeki değişkenler
� Çift tırnak içindeki string’ler biraz daha fazla özellik sağlarlar:
� Çift tırnak içinde kullanılan değişkenlerin taşıdıkları değerler kullanılır.
� Diziler hakkında not:
$saying = "I'll be back!";$str1 = "Arnold dedi ki: $saying";// çıktısı:// Arnold dedi ki: I'll be back!
$sayings = array ('arni' => "I'll be back!");$str1 = "Arnold dedi ki: ${sayings['arni']}";
12.10.2015
24
Heredoc (Yorumlu Metin) sözdizimi
� String’ler (dizgeler) heredoc sözdizimi ile başlar ('<<<')
� Bir yorumlu metin daima <<< karakterleri ile başlar ve hemen ardından bir betimleyici ve bir satırsonu karakteri gelir.
� Uzun HTML kodlarını echo veya print ile yazmaya göre daha kullanışlıdır.
$str = <<<EOTBurası string içerikEOT;
Heredoc (Yorumlu Metin) sözdizimi
� Asıl string (dizge) satırsonu karakterinden sonra yer alır.
� Dizgenin sonunu belirtmek üzere dizgenin sonuna, baştaki betimleyici konur.
� Kapanış betimleyicisinin dizgeden sonraki satırın başında olması gerekir.
� Betimleyici PHP'deki diğer isimlere uygulanan kurallara uygun olmalıdır: Sadece bir harfle veya alt çizgi imi ile başlayabilir; sadece harfler, rakamlar veya alt çizgi imleri içerebilir.
12.10.2015
25
Avantaj ve
Dezavantajlar
Avantajlar ve Dezavantajlar
� Avantajlar
� Öğrenmesi kolaydır, açık kaynak, çoklu platform ve veri tabanı desteği, eklentiler, topluluk ve ticari destekli.
� En hızlı dillerden biri varsayılmaktadır
� Dezavantajlar
� Gevşek bir söz dizimi– risk hoşgörülü, zayıf hata yakalama, zayıf OOP (sürüm 6 öncesi oldukça fazla eksik bulunuyor!)
12.10.2015
26
PHP Temelleri
Sorular?