Dersizle Forumları

Full Versiyon: Php dersleri
Şu anda tam olmayan bir veriyonu görüntülüyorsunuz. Tam versiyonu görmek için, buraya tıklayın
PHP Tarihçesi?

PHP 1994 yılında Rasmus Lerdorf tarafından web sunucusuna koyduğu özgeçmişinin kaç kişi tarafından okunduğunu izlemek için geliştirmeye başlanmıştır. İlk başta bu versyonlar halka açık olmamakla birlikte 1995 yılında Personal Home Page Tools adı altında diğer insanların kullanımına açık hale getirilmiştir. O yıllarda içerisinde çok basit bir iki makroyu anlayabilen ufak bir derleme motoru kişisel sayfalarda kullanılmaya alışık olunan bazi gereçleri bulunduran , misafir defteri , sayaç vb uygulamaları barındıran bir araçtı. 1995 yılında derleme motoru tekrar yazılarak adına PHP/FI V2 denildi ve bu sürüm Rasmus tarafından yazılan ve HTML form bilgilerini işleyebilen bir yapıya sahipti buna mySQL desteğinide ekleyince PHP/FI tam anlamıyla doğmuş oldu. Bir çok kişinin desteği ve kendi yazdıkları kodları paylaşmaları sonucu çok hızlı bir şekilde gelişti ve 1997 de Zeev Suraski ve Andi Gutmans tarafından tamamen yeniden yazılan derleme motoru PHP V3 için bir taban oluşturdu. Bundan yaklaşık bir iki ay önce PHP V4 çıktı ve bu sürümde PHP V3 gibi sıfırdan yeniden yazıldı.


PHP Nedir?

Platformdan bağımsız (Windows,Linux, Etc.) çalışabilen sunucu taraflı, Html gömülü betik dilidir. Perl, C/C++ tipinde script dilidir. Bu dillere aşina olanlar ve herhangi bir programlama dilini bilenler PHP yi fazla vakit kaybetmeden öğrenebilirler.
Oracle, Adabas D, Sybase, FilePro, mSQL, Velocis, mySQL, Informix, Solid,dBase, ODBD Unix dbm ve PostgreSQL veritabanlarıyla güvenli iletişim kurabilir ve IMAP, SNMP, NNTP , POP3 , HTTP servislerine bağlantı kurabilmektedir.
Platform olarak "Linux & Apache & mySQL" kullanılması en yaygın ve önerilendir. Siz kendi sisteminizde de sorunsuz kullanabilirsiniz.

Windows için PHP kurulumu


Forum Kurallarını Okuyalım !!! adresinden php-4.0.6-Win32.zip yada PHP son sürümünü bilgisayarınıza indirin "c:\php" klasörüne açın ve "c:\php\sapi" klasöründeki bütün dosyaları "c:\php" klasörüne taşıyın browscap.ini dosyasınıda c:\Windows klasörüne kopyaladın , php.ini-dist doyasını notepad ile açıp "extension_dir=" satırını bularak karşısındaki "./" yazısını silip yerine "c:\php" yazın ve birde aynı dosyanın içinde ";browscap=" satırını bulun ve önündeki noktalı virgülü kaldırarak karşısındaki "extra/browscap.ini" yazısını "c:\Windows\browscap.ini" olarak değiştir ve bu dosyayı php.ini olarak "c:\Windows" dizinine kopyalayın gerekli "c:\php\dlls" klasörünün altındaki dll dosyalarınıda "c:\Windows\system" klasörünün altına kopyalayın ve bu dosyaların kopyalamasında şu dosya korunuyo gibi hata olursa önemli değil zaten diğerlerini kopyalamış olacak o da zaten varmış demek. ve son olarak
regedit den Windows98 PWS, php yi anlar hale getirmeniz lazım eğer Windows98 kullanıyorsan aşagıdaki kodu "php.reg" dosyası olarak kaydetdin ve çalıştırın.


--------------------------------------------------------------------------------

REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ Parameters\Script Map]
".php"="C:\\PHP\\php4isapi.dll"
".php3"="C:\\PHP\\php4isapi.dll"


--------------------------------------------------------------------------------


Windows 2000 veya farklı sürünlerde aynı düzenlemeleri yapıp regetin ayarını elinizle yapabilirsiniz.

Linux için PHP kurulumu

Forum Kurallarını Okuyalım !!! adresinden php-4.0.6.tar.gz dosyasını indirip install.txt dosyası eşliğinde kurulumu yapabilirsiniz yada php nin RPM binary dosyasını indirerek derlemekle uğraşmayıp sisteminize php yi kurabilirsiniz. bunun yanında Linux için Apache, Mysql ve Php üçlüsünü bilgisayarınıza kurabileceğiniz çeşitli paket programlar da var. bu tür sitelere netten arama motoru ile ulaşabilirsiniz.
Php kurulum işlemi bittiğinde Apache'nin ayar dosyasına(httpd.conf) Php yi aktif hale getirmek için aşağıdaki satırları ekleyin ve Apache sunucusunu yeniden başlatın.


AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .PHPs


Daha ayrıntılı bilgi için Php.net FAQ bölümüne yada www.google.com arama motorundan "How do I install Apache, MySQL, PHP on Linux" gibi anahtar kelimelerle bir çok siteye ulaşabilirsiniz...

PHP ile ilk programımız

Php sürümü, Çevre değişkenleri ile ilgili bilgilere aşağıdaki kodu metin editörü ile yazıp php.php alarak kaydedin ve önizlemesine bakarak görebilirsiniz.



--------------------------------------------------------------------------------

<html>
<?phpinfo();?>
</html>


--------------------------------------------------------------------------------


Ve ilk Php scriptimizi de yazalım.




--------------------------------------------------------------------------------

<?php
$degisken = "PHP";
print ("Merhaba $degisken\n");
?>
HTML gömülü betik dili

PHP, HTML kodlarının arasında kullanılabilir. Bu şekliyle Asp yede benzer. PHP ve HTML nin birleşimi ile ilgili bir örnek yapalım;



--------------------------------------------------------------------------------

<html>
<head>
<title>HTML ile PHP</title>
</head>
<body>
Nick?


<?php
// bu araya php kodları,(açıklama satırı)
/* burası çoklu
açıklama satırı */
echo "Viper!";
?>
</body>
</html>




--------------------------------------------------------------------------------


Değişkenler



Php'de de her programlama dilinde olduğu gibi değişkenler var, fakat değişkenleri kullanmadan önce tanımlamamıza gerek yoktur. İstediğimiz değişkeni istediğimiz an kullanabiliriz. Ayrıca bütün değikenler $ işaretiyle başlar.


--------------------------------------------------------------------------------

<html>
<head>
<title>PHP</title>
</head>
<body>
<?php
$isim = "Adem";
$yas = 20;
?>


<?php
echo "merhaba $isim yaşınız $yas";
?>
</body>
</html>




--------------------------------------------------------------------------------

Diziler




Dizilerin programlamadaki yeri olduğça büyük, normal değişkenlerde sadece değişken başına vir veri tutulurken dizilerde yüzlercesi tutulabilir. Php de çok boyutlu dizilerden tutunda kullanabileceğiniz birçok kolaylıklar vardır...


--------------------------------------------------------------------------------

<html>
<?php
$dizi1 = array("Ahmet","Mehmet","Hasan","Hüseyin","Ali");
echo $dizi1[2];
//Hasan değerini döndürür
?>


<?php
$dizi2 = array(array(adi=>"Yavuz",soyadi=>"Düzgün"),
array(adi=>"Ender",soyadi=>"Gündoğdu"),
array(adi=>"Tülin",soyadi=>"Şahika"),
);
echo $dizi2[1][adi];
//Ender değerini döndürür
?>


<?php
$dizi3[] = "Veli";
$dizi3[] = "Emine";
$dizi3[] = "Salih";
$dizi3[] = "Havva";
echo $dizi3[1];
//Emine değerini döndürür
?>


<?php
$degisken1 = count($dizi3);
echo $degisken1;
//$dizi3 ün elemen sayısı =4 geri döndürür
?>


<?php
$dizi4 = array_merge($dizi1,$dizi3);
//$dizi1 ile $dizi3 ün elemenları $dizi4 te toplanır
?>
</html>
if Deyimi

if karar yapısının kullanımını aşağıdaki örnekte görebilirsiniz ve yardımcı olablecek operatör ve anlamlarına bakabilirsiniz.


--------------------------------------------------------------------------------

<html>
<?php
$saat = date(H);
//şu anki saat (0-24)
$gunler = array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
//günler dizisi
$gun = $gunler[date(w)];
//date(w) ile hangi gün olduğunu getirip günler dizisinden görüntülüyor
if ($gun == "Cumartesi")
{
if ($saat == "12")
{
$yemek = "pasta";
}
}
?>


<?php
if ($yemek == "pasta")
{
echo "yemekte pasta var";
}
else
{
echo "yemekte pasta yok";
}
?>


<?php
if (($saat <=9) && ($saat >=6))
{
echo "Günaydın";
}
elseif (($saat >=10) && ($saat <=16))
{
echo "Tünaydın";
}
elseif (($saat >=17) && ($saat <=20))
{
echo "İyi Akşamlar";
}
else
{
echo "İyi Geceler";
}
?>


<?php
//if deyiminin kullanılması ile ilgili diğer bir yol
if ($saat == 0):
echo "Gece Yarısı!";
else:
echo "Henüz Erken!";
endif;

?>
</html>





--------------------------------------------------------------------------------

İşlemci Örnek Örnek $a=6, $b =5 ise-------------------------------------------------------------------------== eşitse $a == $b False!= eşit değilse $a != $b True> büyükse $a > $b True< küçükse $a < $b False>= büyükse veya eşitse $a >= $b True<= küçükse veya eşitse $a <= $b False

--------------------------------------------------------------------------------


İşlemci Adı Örnek Anlam $a = 12, $b = 12
$c = 9---------------------------------------------------------------------------------&&AND $a == $b && $a > $c $a eşit $b VE $a eşit $c True&&AND $a == $b && $a < $c $a eşit $b VE $a küçük $c False ||OR $a == $b || $a < $c $a eşit $b VEYA $a küçük $ True||OR $a > $b || $a < $c $a büyük $b VEYA $a küçük $c False!NOT !$a $a mevcut değilse False

--------------------------------------------------------------------------------

Switch

Switch-case karar yapısı, Php de C dilindeki kullanımın aynı her case blogundan sonra break komutu ile switch den çıkılır aksi halde bir sonraki case ile uyuşup uyuşmadığı kontrol edilir...



--------------------------------------------------------------------------------

<html>
<?php
$gunler = array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
//günler dizisi
$gun = $gunler[date(w)];
//date(w) ile hangi gün olduğunu getirip günler dizisinden görüntülüyor
// switch karar yapısını kullanalım
switch ($day)
{
// birinci case
case "Pazartesi":
$merhaba = "Haftanın ilk resmi günü";
break;

// ikinci case
case "Salı":
$merhaba = "Haftanın ikinci resmi günü";
break;

case "Çarşamba":
$merhaba = "Haftanın üçüncü resmi günü";
break;

case "Perşembe":
$merhaba = "Haftanın Dördüncü resmi günü";
break;

case "Cuma":
$merhaba = "Haftanın son resmi günü";
break;

// eğer $day hiçbir case değeriyle uyuşmuyorsa
default:
$merhaba = "Haftasonu tatili";
break;

}
?>
<?echo$merhaba?>
</html>
While döngüsü

Sıklıkla kullanılan döngülerden biri olmakla birlikte eşitlik sağlanana kadar döngü içinde yapılması gerektiği işler devam eder...


--------------------------------------------------------------------------------

<html>
<?php
$a = 11;
$b = 3;
while($a > $b) //koşul
{
//koşul doğru ile yapılacak işler
$a = $a - 1;
echo "$a, ";
}
//geri 10, 9, 8, 7, 6, 5, 4, 3, sonucu göner
?>

<?php
$deger = 13;
while ($deger == 12)
{
echo "Merhaba!";
break;
//şart sağlanıyorsa break komutu ile while bloğu sonlandırılır
}
//ilk sorguda şart sağlanmadığından ekrana Merhaba! yazmaz
?>
</html>


--------------------------------------------------------------------------------


do..while döngüsü

While döngüsünden farklı olarak sınamayı döngü içindeki işlemleri yaptıktan sonra yapar...



--------------------------------------------------------------------------------

<html>
<?php
$deger = 13;
do
{
echo "Merhaba!";
break;
//şart sağlanıyorsa break komutu ile while bloğu sonlandırılır
}while($deger == 12);
//önce sorguya bakmadan bloğu işletir ve ekrana Merhaba! yazar
?>
</html>


--------------------------------------------------------------------------------

for döngüsü

Değişkenin sayısı değerini tanımlayıp belli koşula uygun istediğimiz ölçüde artırıp işlemleri yapmak istiyorsak for döngüsü kullanılır...



--------------------------------------------------------------------------------

<html>
<?php
$sayi =3;
for ($x=0; $x<=10; $x++)
{
echo "$sayi X $x = " . ($sayi*$x) . "
";
}
?>

<?php
for ($x=0; $x<=10; $x++)
{
if ($x == 5)
{
continue;
//if koşulu sağlandığında for döngüsü bir
//üst kademeden devam eder
}
elseif ($x == 8)
{
break;
//elseif koşulu sağlandığında for döngüsünden çıkılır
}
else
{
echo "$x
";
}
}
?>
</html>


--------------------------------------------------------------------------------

foreach döngüsü

Formlarla yapacağımız işlemlerde ve dizileri saydırmada işimize oldukça yarayacak...


--------------------------------------------------------------------------------

<html>
<?php
$dizi = array("Ali", "Veli", "Ahmet","Mehmet");
foreach ($dizi as $degisken)
{
echo $degisken . ", ";
}
/*$dizi değişkeninin herbir elemenını $degisken e atar
programın çıktısı : Ali, Veli, Ahmet, Mehmet, 'dir*/
?>
</html>
Form işlemleri

PHP formlarda GET ve POST metoduyla gelen verileri $HTTP_POST_VARS ve $HTTP_GET_VARS çevre değişkenlerinde depolar. ayrıca formarda kullandığımız MULTIPLE şeçim paremetresi dışında gönderilen değerleri "<input type=text name=ali value="?">" örneğindeki gibi value değerini $ali değişkeninde tutup kullanıma hazır olarak sunar...


--------------------------------------------------------------------------------

<?
//formdan gelen name ="submit" değeri $submit eğer boş ise
if (!$submit)
{
?>
<html>
<head>
</head>
<body>
<h4>Lütfen aşağıdaki kutuları doldurun ve Go button'una tıklayın</h4>
<form action="<?echo$PHP_SELF?>" method="POST">
Adınız :
<input type="text" name="ad" size="15" maxlength="15">

Soyadınız :
<input type="text" name="soyad" size="15" maxlength="15">

<input type="submit" name ="submit" value="Go">
</form>
</body>
</html>
<?
}
else
//$submit değeri dolu ise,form gönderildi ise $submit değeri Go gelir
{
?>
<html>
<head>
</head>
<body>
Merhaba <?echo $ad ." ".$soyad?>
</body>
</html>
<?
}
?>



--------------------------------------------------------------------------------

Multiple

Select distinct ad.from customer gelen verileri nasıl listeleyebilirim? yada MULTIPLE parametresiyle gelen verileri nasıl listeleriz yada kullanabiliriz. Bununla ilgili bir örnek daha yapalım örnek formumuz şu şekilde olsun


--------------------------------------------------------------------------------

<form name="form1" method="post" action="">
<select name="veri[]" size="3" multiple>
<option value="1">istanbul</option>
<option value="2">ankara</option>
<option value="3">izmir</option>
</select>
<input type="submit" value="ok" name="submit">
</form>


--------------------------------------------------------------------------------

formdan gelen veriyi php ile okutalım ;


--------------------------------------------------------------------------------


<?php
foreach ( $HTTP_POST_VARS as $anahtar => $deger ) {
if(gettype($deger)== "array"){
print ("$anahtar =
\n");
foreach($deger as $yenidegerler)
print ("$yenidegerler
");
}else{
print ("$anahtar =$deger\n");
}
}
?>


--------------------------------------------------------------------------------

formdaki "veri[]" ifadasine dikkat etmek gerekir, çünkü php de veri[] içinde elemanları olan bir dizi olarak görür ve yukarıda gettype fonksiyonu ile gelen veri tipi array(dizi) ise içinde bulunan elemenlar listelenir.


include, require(Harici Dosya)

Php çalıştığız ana dosya dışında başka bir dosyayı da içine katarak çalıştırabilirsiniz bunun için include ve require komutları kullanılır bunlların birbirinden farkı include ile çağrılan dosya geri return değeri döndürür ama require de bu söz konusu değildir Ana programa dahil edilirler...


--------------------------------------------------------------------------------

[ilk.php]


<?echo"burası sayfanın en üstü"?>



[orta.php]
<?php
$sayi =15;
return $sayi;
?>

[son.php]


<?echo"burası sayfanın en alt kısmı"?>



[anasayfa.php]
<html>
<?php
require("./ilk.php");
?>
<?php
$deger = include("orta.php");
echo $deger;
?>
<?php
$deger = require("orta.php");
echo $deger;
?>
<?php
$basari= @include("son.php");
if (!$basari) { print "Sayfa bulunamadı"; }
?>
</html>
Fonksiyonlar

Programlamanın temelini fonksiyonlar oluşturur. Ayrıca ana programın kendiside bir fonksiyondur denilebilir. En çok kullanılanlar print() ve echo() fonksiyonlarıdır. Bunun yanında kendimizde fonksiyon yazabiliriz ve istediğimiz an kullanabiliriz.


--------------------------------------------------------------------------------

<html>
<?php
$a = 1;
$b = 2;
//global $a ve $b değişkenlerimiz ve değerleri
function toplam() {
global $a, $b;
/* global $a,$b; demekle ana programdaki
$a ve $b değişkenlerin değerlerini kullan*/
$c = $a + $b;
echo $c;
//ekrana $c nin değerini 3 yazar
}
toplam();
//üsteki toplam fonksiyonunu kullanıyoruz
?>


<?
/*fonksiyonlara paremetre gönderip
geri değer döndürmesini isteyebiliriz*/
function paremetre ($id1, $id2) {
$id3=$id1 + $id2;
return $id3;
//$id3 değişkeninin değerini geri döndürür
}
echo paremetre(15,34);
/*15'i $id1, 34'ü $id2 ye atar ve dönen return
değerini echo ile ekrana yazar*/
?>


<%
function statik() {
static $a = 0;
/*$a değişkenini static tanımlamakla fonksiyonu
her çağırdığımızda $a nın son değerini alır*/
echo $a;
$a++;
}
statik();
//ekrana 0 yazar
statik();
//ikinci çağrışımızda ekrana 1 yazar ve takip eder
%>


<?php
function islem ($a =5){/*fonksiyon paremetresiz çağrılırsa
$a değişkeninin değeri varsayılan olarak 5 alınır*/
return ($a+1);
}
echo islem();
//ekrana 6 yazar
print "
";
echo islem(10);
//ekrana 11 yazar
?>
</html>


--------------------------------------------------------------------------------

Nesne Tabanlı Programlama (Object-Oriented Programming)

Programlama dilleri nesneye dayalı olmakla birlikte kullanım açısından bir çok avantajlar getirdi. PHP de istediğimiz kadar sınıf oluşturup bunların içinde yine istediğimiz kadar fonksiyonlar kullanabiliriz.



--------------------------------------------------------------------------------

<?
class stil
{
//özellikleri tanımlayalım
var $font;
var $renk;
var $boyut;
var $metin;
//fonksiyonları tanımlayalım
function arayuz($c,$d,$e,$f){
$this->font = $c;
$this->boyut = $d;
$this->renk = $e;
$this->metin = $f;
}
function yazdir(){
echo "<font face=\"".$this->font." size=".$this->fontsize.
"\" color=".$this->renk.">".$this->metin."</font>";
}
}

?>
<html>
<?
$sinif = new stil;
//stil nesnesini kullanıma açıyoruz (önyükleme)
$sinif->arayuz("Trebuchet MS",2,"black", "Enigma");
//arayuz fonksiyonuna font ile ilgili paremetreler gönderilir
$sinif->yazdir();
//nesnemizin yazdır fonksiyonu (metodu) çalışır
echo "
";
$sinif->renk ="blue";
$sinif->metin ="Parçalarını";
$sinif->yazdir();
echo "
";
$film = new stil;
$film->arayuz("Times New Roman",3,"red", "Mutlaka Dinleyin");
$film->yazdir();
?>
</html>
saoL güzel döküman hazırlamsıısn ben yeni baslıdm php ye yararlı olucak..gozkirp
teşekkürler güsel bilgiler!
İnternette doğru düzgün bir şey bulamadım bu biraz işe yarar tşk. Öğrenecem kararlıyım ama yeterince kaynak yok detaylı anlatım lazım.
Referans URL