SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
12.10.2015
1
İnternetTabanlı
Programlama
PHPTemelleri
Yrd.Doç.Dr.Celal Murat KANDEMİR
ESOGÜ – Eğitim Fakültesi - BÖTE
twitter.com/cmkandemir
GerekliYazılımlar
ApacheWeb 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
GerekliYazı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
PHPTemelleri
Yrd.Doç.Dr.Celal Murat KANDEMİR
ESOGÜ – Eğitim Fakültesi - BÖTE
twitter.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ışır
1. 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ışır
1. 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ı
<?php
print («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
<?php
print "<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çindeTü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şkenTü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]" => 1
print $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şkenTü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
PHPTemel İ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"===10
karşı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ır
print 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. print
fonksiyonu 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
?>
ÖnTanımlı Değişkenler
12.10.2015
20
ÖnTanı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.
ÖnTanı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
ÖnTanı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 = <<<EOT
Burası string içerik
EOT;
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
PHPTemelleri
Sorular?

Contenu connexe

En vedette

En vedette (9)

Chapter 6 - Introduction to 8085 Instructions
Chapter 6 - Introduction to 8085 InstructionsChapter 6 - Introduction to 8085 Instructions
Chapter 6 - Introduction to 8085 Instructions
 
Chapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional InstructionsChapter 7 - Programming Techniques with Additional Instructions
Chapter 7 - Programming Techniques with Additional Instructions
 
impress.js Framework
impress.js Frameworkimpress.js Framework
impress.js Framework
 
openCV and Java - Face Detection
openCV and Java - Face DetectionopenCV and Java - Face Detection
openCV and Java - Face Detection
 
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2
Canvas Öğrenme Yönetim Sistemi Kullanım Kılavuzu Bölüm 2
 
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, FonksiyonlarKod Akış Kontrolü - Döngüler, Fonksiyonlar
Kod Akış Kontrolü - Döngüler, Fonksiyonlar
 
PHP ve MySQL Bağlantısı - Temel İşlemler
PHP ve MySQL Bağlantısı - Temel İşlemlerPHP ve MySQL Bağlantısı - Temel İşlemler
PHP ve MySQL Bağlantısı - Temel İşlemler
 
Matching Game In Java
Matching Game In JavaMatching Game In Java
Matching Game In Java
 
CSS - Sunum Bileşenleri
CSS - Sunum BileşenleriCSS - Sunum Bileşenleri
CSS - Sunum Bileşenleri
 

Similaire à PHP Temelleri (20)

Php
PhpPhp
Php
 
php nin yapı taşları
php nin yapı taşlarıphp nin yapı taşları
php nin yapı taşları
 
Php ekşin - Temel php i̇şlemleri
Php ekşin - Temel php i̇şlemleriPhp ekşin - Temel php i̇şlemleri
Php ekşin - Temel php i̇şlemleri
 
Php1
Php1Php1
Php1
 
Php MySQL
Php MySQLPhp MySQL
Php MySQL
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Giriş
 
PHP - Ders I (PHP'ye Giriş)
PHP - Ders I (PHP'ye Giriş)PHP - Ders I (PHP'ye Giriş)
PHP - Ders I (PHP'ye Giriş)
 
PHP'ye Giriş
PHP'ye GirişPHP'ye Giriş
PHP'ye Giriş
 
Php dokumani
Php dokumaniPhp dokumani
Php dokumani
 
Php ornek
Php ornekPhp ornek
Php ornek
 
Php ornegi
Php ornegiPhp ornegi
Php ornegi
 
Fonksiyonlar
FonksiyonlarFonksiyonlar
Fonksiyonlar
 
Php ornekleri
Php ornekleriPhp ornekleri
Php ornekleri
 
Php danismani
Php danismaniPhp danismani
Php danismani
 
Php cevaplari
Php cevaplariPhp cevaplari
Php cevaplari
 
Php mysql sunum
Php mysql sunumPhp mysql sunum
Php mysql sunum
 
Php egitmeni
Php egitmeniPhp egitmeni
Php egitmeni
 
Php okullari
Php okullariPhp okullari
Php okullari
 
Php kursu-catalca
Php kursu-catalcaPhp kursu-catalca
Php kursu-catalca
 
Php ogretmeni
Php ogretmeniPhp ogretmeni
Php ogretmeni
 

Plus de cmkandemir

Plus de cmkandemir (10)

Temel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım ÖrnekleriTemel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım Örnekleri
 
Yapay Zeka Nedir?
Yapay Zeka Nedir?Yapay Zeka Nedir?
Yapay Zeka Nedir?
 
Zekayı Anlamak
Zekayı AnlamakZekayı Anlamak
Zekayı Anlamak
 
PHP - Kullanıcı Girişlerinin İşlenmesi
PHP - Kullanıcı Girişlerinin İşlenmesiPHP - Kullanıcı Girişlerinin İşlenmesi
PHP - Kullanıcı Girişlerinin İşlenmesi
 
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer SystemsChapter 2-8085 Microprocessor Architecture and Microcomputer Systems
Chapter 2-8085 Microprocessor Architecture and Microcomputer Systems
 
Chapter 1-Microprocessors, Microcomputers, and Assembly Language
Chapter 1-Microprocessors, Microcomputers, and Assembly LanguageChapter 1-Microprocessors, Microcomputers, and Assembly Language
Chapter 1-Microprocessors, Microcomputers, and Assembly Language
 
CSS - Genel Bakış
CSS - Genel BakışCSS - Genel Bakış
CSS - Genel Bakış
 
Temel HTML Etiketleri - Tablo, Form
Temel HTML Etiketleri - Tablo, FormTemel HTML Etiketleri - Tablo, Form
Temel HTML Etiketleri - Tablo, Form
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Image
 
Vaadin JPAContainer
Vaadin JPAContainerVaadin JPAContainer
Vaadin JPAContainer
 

PHP Temelleri

  • 1. 12.10.2015 1 İnternetTabanlı Programlama PHPTemelleri Yrd.Doç.Dr.Celal Murat KANDEMİR ESOGÜ – Eğitim Fakültesi - BÖTE twitter.com/cmkandemir GerekliYazılımlar ApacheWeb 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
  • 2. 12.10.2015 2 GerekliYazı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 PHPTemelleri Yrd.Doç.Dr.Celal Murat KANDEMİR ESOGÜ – Eğitim Fakültesi - BÖTE twitter.com/cmkandemir
  • 3. 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?
  • 4. 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ışır 1. 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
  • 5. 12.10.2015 5 PHP Nasıl Çalışır 1. 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
  • 6. 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
  • 7. 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>
  • 8. 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
  • 9. 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
  • 10. 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ı <?php print («Merhaba PHP!"); // bu bir ifade ?>
  • 11. 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 <?php print "<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. 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çindeTürkçe karakterler kullanılmaz: Örneğin; ıİ,Şş,Çç,Ğğ,Öö,Üü PHP Değişkenler
  • 13. 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şkenTü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
  • 14. 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
  • 15. 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]" => 1 print $arr["diger"][2]; // tarayıcı çıktısı 3 ?>
  • 16. 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şkenTü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
  • 17. 12.10.2015 17 PHPTemel İ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"===10 karşı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;
  • 18. 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ır print DEGISKEN_ADI; // 123 tarayıcı çıktısı verir ?> Temel Fonksiyonlar
  • 19. 12.10.2015 19 BazıTemel Fonksiyonlar print fonksiyonunu gördük echo fonksiyonu da print ile aynıdır. print fonksiyonu 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 ?> ÖnTanımlı Değişkenler
  • 20. 12.10.2015 20 ÖnTanı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. ÖnTanı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
  • 21. 12.10.2015 21 ÖnTanı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 ?>
  • 22. 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"";
  • 23. 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']}";
  • 24. 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 = <<<EOT Burası string içerik EOT; 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.
  • 25. 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!)