Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

PHP H YPERTEXT P REPROCESSOR Özcan ÇAĞIRICI 06104441 CSE341 Programming Languages Özcan ÇAĞIRICI.

Benzer bir sunumlar


... konulu sunumlar: "PHP H YPERTEXT P REPROCESSOR Özcan ÇAĞIRICI 06104441 CSE341 Programming Languages Özcan ÇAĞIRICI."— Sunum transkripti:

1 PHP H YPERTEXT P REPROCESSOR Özcan ÇAĞIRICI 06104441 CSE341 Programming Languages Özcan ÇAĞIRICI

2 İ ÇERIK PHP nedir ? Çalışma Prensibi PHP’nin Tarihi Neden PHP ? Yazım Kuralları Tipler Değişkenler Sabitler Kontrol Yapıları Özcan ÇAĞIRICI

3 İ ÇERIK Fonksiyonlar Diziler Stringler Class ve Object Formlar PHP ve mySQL Çerezler İleri Düzey PHP konuları Sonuçlar Özcan ÇAĞIRICI

4 PHP N EDIR ? PHP: Hypertext Processor (or Personal Home Page) PHP, Web tabanlı yazılımları geliştirmek için tasarlanmış bir programlama dilidir. Kaynak kodu ücretsiz elde edilebilir. Çalışma mantığı sunucu taraflıdır. Birçok işletim sistemi üzerinde çalışabilir: Linux, Windows, MacOSX, Solaris, Unix, Netware Veri tabanına erişim (özellikle mysql) Özcan ÇAĞIRICI

5 Ç ALıŞMA P RENSIBI Özcan ÇAĞIRICI

6 Ç ALıŞMA P RENSIBI PHP uzantılı dosyalarda PHP derleyicilerinin çağrılması gerekir. PHP derleyici, kendine ulaşan metin dosyasının içinde arasındaki PHP kodlarını ise seçip alır ve istenen/gereği neyse onu yapar. Bu ayıraçların içinde kalan kodlar, bizim yapılmasını istediğimiz işlemin komutlarıdır. Özcan ÇAĞIRICI

7 PHP’ NIN T ARIHI PHP, 1993 yılında Rasmus Lerdorf tarafından P ersonal H ome P ages adıyla yazılmıştır.1993 Kaynak kodları 1995 senesi içinde yayınlamıştır. PHP 5.2.8 şu an için son sürüm olup, 2009 yılının ilk çeyreğinde PHP 5.3.0 sürümünün yayınlanması beklenmektedir. 2007’nin Temmuz ayından itibaren dünya çapında 21 milyondan daha fazla alanda kullanılmaktadır. Özcan ÇAĞIRICI

8 PHP’ NIN T ARIHI Özcan ÇAĞIRICI

9 N EDEN PHP ? Ücretsizdir. Kaynak kodu açıktır. Birçok işletim sistemi ve web sunucusu üzerinde çalışabilir. Web sunucusu üzerinde az hafıza kullanır. Yazım kuralları, öğrenimi kolaydır (C ve Perl dillerine benzer). Eklentileri ve yardımcı kütüphaneleri ücretsizdir. Özcan ÇAĞIRICI

10 N EDEN PHP ? Dinamik olarak oluşan grafikler yaratılabilir. Tartışma forumları oluşturulabilir. XML verilerini yorumlanabilir ve oluşturulabilir. İçerik yönetimi yapılabilir. Site içi veya dışı arama motorları yaratılabilir. Özcan ÇAĞIRICI

11 Y AZıM K URALLARı PHP’nin yazım kuralları günümüzde çok popüler olan C, JAVA ve PERL gibi programlama dillerine benzerdir. PHP kodları kendine özel etiketler sayesinde html komutlarının içine gömülür. ve ya Php komutları “;” (noktalı virgül) işaretiyle sonlandırılır. echo,print ve printf : Ekrana yazdırma komutudur. // : Tek satırlık açıklamalar için kullanılır /* ve */ : Birden çok açıklama satırlarında kullanılır. Yorumlayıcı işaretler arasındaki yazıları ve PHP komutlarını dikkate almaz. Özcan ÇAĞIRICI

12 İ LK PHP ÖRNEĞI My First PHP Page <?php echo “ Hello World! "; ?> Özcan ÇAĞIRICI

13 T IPLER PHP’de veri tipler C programalama diline benzerdir. Scalar tipler Boolean Integer Float String Compound tipler Array Object Diğer Tipler Resource, interface …. Özcan ÇAĞIRICI

14 DEĞİŞKENLER PHP’de değişkenler önüne $ simgesi konularak tanımlanır. PHP de değişkenlerin tipleri dinamiktir. PHP değişkenleri büyük ve küçük harf duyarlıdır. Değişkenler harf ve underscore ile başlamak zorundadır. Değişkenlere değer atamak için "=" işareti kullanılır. Özcan ÇAĞIRICI

15 DEĞİŞKENLER Global ve Static Değişkenler Bir fonksiyon sadece içerisinde tanımlanan değişkenlerle çalışabilir. Fonksiyon geriye döndürdükten sonra içindeki tanımlanmış değişkenler ve bunların değerleri yok olurlar. <? global $a; $a = 20; hesapla(); print ($a); function hesapla() { $a = $a * 1000; //$a global olmasaydı buradan değerine ulaşamazdık return $a; } ?> Output 20000 Özcan ÇAĞIRICI

16 S ABITLER Sabitler program boyunca değişmeyen değerlerdir. Bir sabit tanımlandıktan sonra atanana ilk değerini korur, yeni bir değer ataması yapılamaz. Sabitler define() komutu ile tanımlanırlar. Sabitlerin önünde $ bulunmaz. Kullanılış biçimi: define (sabit_adi, deger) <? define (pi_sayisi, 3.14); define (dis_acilar, 360); ?> Özcan ÇAĞIRICI

17 K ONTROL Y APıLARı if, while, for ve switch yapıları C programlama dilindeki gibidir. Örnek : İki sayıdan büyük olanı bulan bir program <? $sayi1 = 5; $sayi2 = 15; if ($sayi1 > $sayi2) { print ("İlk sayı büyük $sayi1"); } else if ($sayi1 < $sayi2) { print ("İkinci sayı büyük $sayi2"); } else { print ("Sayılar eşit $sayi1,$sayi2"); } ?> Özcan ÇAĞIRICI

18 K ONTROL Y APıLARı while döngü yapısı Örnek : 1'den 10'a kadar olan sayıların toplamını bulan bir program. <? $sayac = 0; while ($sayac <= 10) { $sayac ++; $toplam = $toplam + $sayac; } print ($toplam); ?> Özcan ÇAĞIRICI

19 K ONTROL Y APıLARı for döngü yapısı Örnek : 0'dan 10'a kadar olan sayıların toplamını bulan bir program. <? for ($sayac = 0; $sayac <= 10; $sayac ++) { $toplam = $toplam + $sayac; } print ($toplam); ?> Özcan ÇAĞIRICI

20 K ONTROL Y APıLARı PHP ekstra döngü yapısı olan foreach kolaylık sağlar. $people [0]=‘Ali'; $people [1]=‘Veli'; foreach ($people as $person) echo "$person bir örnektir”; Output Ali bir örnektir. Veli bir örnektir. Özcan ÇAĞIRICI

21 F ONKSIYONLAR PHP’de kendi fonksiyonlarınızı tanımlayabilirsiniz. Değişkenler gibi büyük küçük harf duyarlıdır. PHP fonksiyonları henüz thread programlamayı desteklememektedir. Fonksiyon overloading desteklemez. Tanımlaması: function hesapla($deger) { //PHP kodu } Kullanımı $benim_degerim = 5; hesapla($ benim_degerim ); Özcan ÇAĞIRICI

22 F ONKSIYONLAR Fonksiyonlar istediğin tipte geriye bir değer döndürebilir. Fonksiyona parametreleri pass by value ve pass by reference olarak gönderebilirsiniz. Fonksiyonlara parametreler varsayılan olarak pass by value şeklinde gider. Özcan ÇAĞIRICI

23 F ONKSIYONLAR Pass by value <?php function exampleByValue($string) { $string = ‘by value.’; } $variable = ‘variable’; exampleByValue($variable); echo $ variable; ?> Output: variable Pass by refence Parametre başına & işareti konularak referansı gönderilir. <?php function exampleByValue(&$string) { $string = ‘by refence.’; } $variable = ‘variable’; exampleByValue($variable); echo $ variable; ?> Output: by refence Özcan ÇAĞIRICI

24 D IZILER PHP dizileri string ve numaralar ile indekslenebilir. Dizi boyutu statik değildir. Dizi yapısını vector, hashtable, stack gibi kullanabilirsiniz. Özcan ÇAĞIRICI

25 D IZILER Yazım Kuralı <?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; echo $arr[12]; ?> 2 Boyutlu Diziler <?php $arr = array("somearray" => array(6 => 5, 13 => 9, "a" =>42)); echo $arr["somearray"][6]; // 5 echo $arr["somearray"][13]; // 9 echo $arr["somearray"]["a"]; // 42 ?> Özcan ÇAĞIRICI

26 S TRINGLER PHP regular expression destekler. Bir çok string fonksiyonu tanımlıdır. strcmp(str1, str2) İki stringi kıyaslar. (aynı ise 0 döndürür) strlen(str) Stringin uzunluğunu döndürür. Özcan ÇAĞIRICI

27 C LASS VE O BJECT Fonksiyonlar ve değişkenlerden oluşan bir class yapısı tanımlayabilirsiniz. PHP 5 ve üzeri sürümlerde private ve protected değişken ve fonksiyonları tanımlanmıştır. constructor ismi class ismi ile aynı olmak zorundadır. <?php class Daire { var $yaricap; function cevre() { return $this->yaricap * 2 * PI; } function alan() { return $this->yaricap * yaricap * PI; } }; ?> Özcan ÇAĞIRICI

28 C LASS VE O BJECT Object yaratmak için new keyword kullanılır. <?php $myDaire = new Daire; echo $myDaire->alan(); echo $myDaire->cevre(); ?> Özcan ÇAĞIRICI

29 C LASS VE O BJECT Ayrıca PHP 5 ile interface ve multiple inheritance desteklenmiştir. extend keyword kullanılarak classlardan inheritance yapılabilir. Özcan ÇAĞIRICI

30 F ORMLAR GET : Client(İstemci) tarafından gönderilen bilgiler browser adres satırında görüntülenir. Adınız : Soyadınız :....../formyolla.php?ad=“Cuneyt"&soyad=“Ay"&.... Özcan ÇAĞIRICI

31 F ORMLAR POST : Client(İstemci) tarafından gönderilen bilgiler browser adres satırında görüntülenmeden yollanır. Adınız : Soyadınız : formyolla.php Output Cuneyt Özcan ÇAĞIRICI

32 PHP VE MY SQL mysql_connect komutuyla veritabanı sunucusuna IP, kullanıcı adı ve şifre verilerek bağlantı sağlanır. Daha sonra mysql_select_db komutuyla dosyadaki tüm mysql işlemlerinde kullanılacak olan veritabanı tercihi belirtilmiş olur. mysql_query fonksiyonu kullanılarak veritabanına sorgu gönderilir. Özcan ÇAĞIRICI

33 PHP VE MY SQL mysql_numrows sonuç tablosundaki satır sayısını öğrenmek için kullanılır. mysql_fetch_array sonuçları dizi değişkeni olarak alır. PHP dosyalarında tüm veri tabanı işlemlerinde önce veri tabanı sunucusuyla bağlantı kurulmalıdır. Özcan ÇAĞIRICI

34 PHP VE MY SQL mySQL’e bağlanma mysql_connect(“localhost”,”root”,”sifre”); mysql_select_db(“veritabani”); mySQL’e sorgu gönderme $isimler = ”SELECT * FROM ogrenciler”; $sonuc = mysql_query($isimler); while($ogrenci = mysql_fetch_array( $sonuc )){ echo $ ogrenci [“isim”]; echo $ ogrenci [“numara”]; } Özcan ÇAĞIRICI

35 PHP VE MY SQL mySQL’e Kayıt Eklemek $sql = “INSERT INTO ogrenciler (NUMARA, BOLUM, SINIF, ADI, SOYADI) values ('$NOM', '$BOLUM', '$SINIF', '$ADI', '$SOYADI',)"; $sonuc= mysql_query($sql); mySQL’de Kayıt Silmek ve Update $sql=“DELETE FROM ogrenciler WHERE NUMARA='$NUMARA‘ “;$sonuc= mysql_query($sql); $sql = “UPDATE ogrenciler SET SINIF = '$SINIF‘ WHERE NUMARA = $ NUMARA "; $sonuc= mysql_query($sql); Özcan ÇAĞIRICI

36 Ç EREZLER PHP aracılığıyla çerez bırakabilir ve bu çerezleri okuyabilirsiniz. setcookie() fonksiyonu çerez bırakmak için görev yapar. Çerezler betiğinizin herhangi bir çıktısından önce gönderilmelidir. Çerezler bir kere atandı mı, artık $_COOKIE veya $HTTP_COOKIE_VARS dizileri ile sonraki sayfa yüklemesinde erişilebilir olacaktır. Özcan ÇAĞIRICI

37 Ç EREZLER <?php $firstvisit = !isset($_COOKIE['beenherebefore']); if ($firstvisit) setcookie('beenherebefore','yes'); ?> <?php if ($firstvisit) echo "Hello"; else echo "Welcome back"; ?> Özcan ÇAĞIRICI

38 İ LERI D ÜZEY PHP KONULARı Fonksiyon Değişkeni Fonksiyon ismini değişken olarak yapabilirsiniz. <?php function fonkA() { echo " fonkA()\n"; } function fonkB($arg = '') { echo " fonkB()n";} $degisken = ‘fonkA'; $ degisken (); // fonkA() çağrılır. $ degisken = 'bar'; $ degisken ('test'); // fonkB() çağrılır. ?> Özcan ÇAĞIRICI

39 İ LERI D ÜZEY PHP KONULARı Fonksiyondan referans geri döndürme Referans geri döndürmek için fonksiyon tanımlamasında ve atama işleminde & operatoru kullanılmalıdır. <?php function &returns_reference() { return $someref; } $newref =& returns_reference(); ?> Özcan ÇAĞIRICI

40 İ LERI D ÜZEY PHP KONULARı Fonksiyon içinde fonksiyon tanımlama fonkB() direk çağırılamaz. fonkA() çağrıldıktan sonra fonkB()’ye erişim imkan olacaktır. <?php function fonkA() { function fonkB() { ……. } fonkA(); fonkB(); ?> Özcan ÇAĞIRICI

41 S ONUÇLAR JAVA ve C programlama dillerine benzerliğinden dolayı öğrenmesi kolaydır. HTTP session ve CGI parametreleri tanımlamaları kolaydır. Dizi yapısı pratik ve dinamiktir. PHP ile ilgili birçok kaynak Internet üzerinde erişilebilir durumdadır. Özcan ÇAĞIRICI

42 S ONUÇLAR Büyük projelerde tip güvenliği sorun çıkartabilir. Performans ve profesyonel destek için ücretlidir. Windows işletim sistemi üzerinde güvenlik açıkları oluşturabilmektedir. Hata ayıklama cehennem gibidir. Özcan ÇAĞIRICI


"PHP H YPERTEXT P REPROCESSOR Özcan ÇAĞIRICI 06104441 CSE341 Programming Languages Özcan ÇAĞIRICI." indir ppt

Benzer bir sunumlar


Google Reklamları