Arama

PHP Nuke Anlatım - Sayfa 2

Güncelleme: 29 Mart 2008 Gösterim: 19.648 Cevap: 15
andreyadoriya - avatarı
andreyadoriya
Ziyaretçi
14 Aralık 2006       Mesaj #11
andreyadoriya - avatarı
Ziyaretçi
cd\
cd apache
Sponsorlu Bağlantılar
cd mysql
cd bin

şeklinde bin klasörüne girebilirsin.
ulsa - avatarı
ulsa
Ziyaretçi
30 Aralık 2006       Mesaj #12
ulsa - avatarı
Ziyaretçi
Alıntı
fatihdervisoglu adlı kullanıcıdan alıntı


Eğer sisteminize PHP-Triad kurduysanız "phpmyadmin" kaynağını da bilgisayarınıza kurmuşsunuz demektir. Bilgisayarınızda "http://localhost/phpmyadmin" kaynağından bu dosyaya ulaşabilirsiniz.

Sponsorlu Bağlantılar

işte tam burada sorunum var... tarayıcıya bu adresi yazdığımda "sayfa görüntülenemiyor" uyarısıyla karşılaşıyorum. sorun nerede olabilir? neyi yanlış yaptım?
memcho - avatarı
memcho
Ziyaretçi
10 Şubat 2007       Mesaj #13
memcho - avatarı
Ziyaretçi
kardeşim DOS kullanmayı pek bilmiyorsun sanırım DOS penceresi açıldığında sadece C:\> görünmeyecektir. C:\> kalana kadar satıra (cd..) yaz parantezler yok tabi noktalar var ama sonra en son orda C:\> kalacaktır sonra sırasıyla (cd apache yaz enterla cd mysql yaz enterla cd bin yaz enterla C:\>APACHE\MYSQL\BIN klasörünün içindesin sonra oraya mysql nuke < nuke.sql yazarsan olay biter Msn HappyMsn HappyMsn Happy iyi çalışmalar
turist - avatarı
turist
Ziyaretçi
15 Temmuz 2007       Mesaj #14
turist - avatarı
Ziyaretçi
PHP


PHP'ye Giriş

PHP sunucu taraflı (server side), HTML ile uyumlu bir betik dilidir. Daha önce kullandığım “programlama dili” ifadesi PHP için yüzde yüz açıklayıcı değildir. PHP, HTML de olduğu gibi bir derleyici tarafından derlenmez, sadece sunucudaki php programı tarafından yorumlanır. C bilen birisi için PHP öğrenmesi çok basit olan bir dildir, öyle ki dosya işlemleri gibi karışık konularda PHP, C’den çok daha basittir.
Yazdığınız PHP kodları hiçbir zaman sitenizin ziyaretçisine görüntülenmez. Ziyaretçi sayfanın kaynağını görüntülese bile göreceği sizin PHP kodlarınızın sunucu sistemdeki php programı tarafından HTML’ye çevrilmiş halidir. Aşağıdaki kod kümesini incelerseniz daha iyi anlayacağınızı sanıyorum (PHP’ye henüz bir giriş yapmadığım için kodları anlamayabilirsiniz, fakat yine de C’ye az da olsa aşina olanlar bir anlam çıkartacaktır).
<?php
printf(“Bu bir PHP dosyasıdır.<br>\n”);
print(“Bu bir PHP dosyasıdır.<br>\n”);
echo (“Bu bir PHP dosyasıdır.<br>\n”);
echo “Bu bir PHP dosyasıdır.<br>\n”;
?>

Yukarıdaki dört kod satırıda ekrana “Bu bir PHP dosyasıdır.” yazdıracaktır. Ve web istemcinizden sayfanın kaynağına baktığınız zaman sadece
Bu bir PHP dosyasıdır.<br>
Bu bir PHP dosyasıdır.<br>
Bu bir PHP dosyasıdır.<br>
Bu bir PHP dosyasıdır.<br>

gibi bir içerik görürsünüz. Yazdığınız kodlar sunucu sistemdeki php programı tarafından normal HTML kodlarına çevrilmiştir ve ziyaretçi bu kodlardan başka herhangi bir içerik göremez.
Dikkat ettiyseniz sayfamızın kaynağındaki kodlar dört satır halinde yazılmış, eğer PHP programımızda her metinden sonra gelen “\n” karakterini kaldırsaydık sayfamızın kaynağındaki komutlar tek satıra yerleşirdi.
Fakat bu sayfanın ziyaretçiye görünen kısmını değiştirmediği için üzerinde fazla durulması gereken bir konu değil.
Bir diğer husus da kodlarımızda kullandığımız <br> etiketi. Evet PHP içinde doğrudan doğruya HTML etiketleri kullanabilmemiz bize çok büyük kolaylıklar sağlayacak. PHP dosyaları sunucu sistemde .php ya da .php3 uzantısı ile saklanır (.php3, PHP’nin 3. Sürümü için kullanılmaktadır). Dosyamızda PHP kodlarını kullandığımız yeri göstermek için <?php ?> ya da <? ?> etiket aralıklarını kullanırız. Bu etiketlerin kullanıldığı yerden itibaren sunucu etiket aralığındaki komutları php yorumlayıcısına gönderir, php yorumlayıcısı da bu kodları düz HTML kodlarına çevirir.
Denemelerinizi bir UNIX ya da türevi işletim sistemi üzerinde yapmanızı tavsiye ederim, çünkü PHP ile birlikte kullanılan bir çok işlev Windows altında çalışmamakta ya da sorun yaratmaktadır.
Elinizin altında PHP+MySQL desteği bulunan bir sistem olduğunu varsayarak bölüme başlıyorum.
Öncelikle PHP’nin yazım kurallarından söz etmek istiyorum. Daha öncede belirttiğim gibi PHP kodları <?php ?> ya da <? ?> etiketleri arasında kullanılır. Yazdığımız her komuttan sonra ; işareti kullanırız (C’ye benziyor demiştim icon wink). Bir web sayfasında veya formdan gelen değişkenleri adlarının başına $ işaret koyarak sembolize ederiz ve değişken adlarında Türkçe karakter kullanamayız.
PHP ile Ekrana Yazı Yazma
PHP konu başlığında verdiğim örnekte olduğu gibi ekrana yazı yazmak için dört değişik yol kullanırız (en azından ben o kadar biliyorum!)
printf(“Bu bir PHP dosyasıdır.<br>”);
print(“Bu bir PHP dosyasıdır.<br>”);
echo (“Bu bir PHP dosyasıdır.<br>”);
echo “Bu bir PHP dosyasıdır.<br>”;

Yukarıdaki dört satırda ekrana “Bu bir PHP dosyasıdır.” yazacaktır. Dikkat ederseniz her komuttan sonra bir ; işareti kullanılıyor. Bu işareti kullanmamamız halinde php programı hata verecektir. Şimdi içinizde “Bu yazıyı HTML ile daha kısa bir kod kümesi ile yazmak mümkün!” diye düşünenler olacaktır (bende ilk başta öyle düşünmüştüm :-), fakat ilerde ekrana değişken ile gelen bilginin yazdırılmasını gördükten sonra sizde bu yazım şeklinin gereksiz olmadığını anlayacaksınız.
Aşağıdaki örnekte $deger adlı değişkene değer atayıp ekrana yazdırıyorum.
<?php

/* Buralar yorum satırı*/
# Burası da tek satırlık yorum aralığı

$değer = "Bu değişkenin değeri";
echo $değer;

?>

Bu dosyayı yazıp ilk.php diye kaydettikten sonra web istemcinizin adres satırına Linklerin Görülmesine İzin Verilmiyor
Linki Görebilmek İçin Üye Ol veya Giriş Yap yazarsanız ekranda “Bu değişkenin değeri” yazısını göreceksiniz (Kullandığınız sunucunun ismi localhost ve ilk.php dosyasının da ana www dizininde olduğunu varsaydım).
PHP ile sadece metinsel işlemler değil, matematiksel işlemler de gerçekleştirebilirsiniz. Bunun için C programlama dilinde olduğu gibi toplama için +, çıkarma için -, çarpma için *, bölme için / ve kalan bulma için % sembolleri kullanılır.
İsterseniz birkaç örnek ile matematiksel işlemlere giriş yapalım.
<?php
###########################
# Matematiksel İşlemler #
# mat.php #
###########################

# Değişkenler tanımlanıyor
$a = 10;
$b = 2;
$c = 3;

# Kullanılacak matematiksel işlevler tanımlanıyor
$toplam = ($a + $b + $c);
$carpim = ($a * $b * $c);
$bolum = ($a / $b);
$kalan = ($a % $c);

# Çıktılar ekrana yazdırılıyor
echo "Tanımlı değişkenlerin toplamı: <b>$toplam</b><br>\n";
echo "Tanımlı değişkenlerin çarpımı: <b>$carpim</b><br>\n";
echo "Birinci ve ikinci değişkenin bölmesi sonucu bölüm: <b>$bolum</b><br>\n";
echo "Birinci ve üçüncü değişkenin bölmesi sonucu kalan: <b>$kalan</b>";
?>

Yukarıdaki örnek, programlama ile daha önce uğraşmamış birisi için biraz karışık olabilir. Önce değişkenlere değer atanır ve belirli işlevler kullanılarak bu değerler istenilen işlemlerden geçirilerek farklı bir sonuç elde edilir. Tıpkı matematikte kullanılan işlevler gibi, belirli işlemler istenilen değişken değerine uygulanır.
Yani, y = f(x, w, z) = x + w + z gibi, bizde y yerine $toplam diye bir değişken ve x, w ve z yerine $a, $b ve $c gibi değişkenler kullandık. Matematikte kullanılan işlevlerden tek farkı kullanılan değişken tiplerinin farklı olması ve matematiksel işlemler dışında da işlemlerin yapılabiliyor olmasıdır.
Bizim örneğimizde bazı matematiksel değerlerin toplamı, çarpımı ve bölümü alındı. Bu matematiksel işlemleri istenilen amaç doğrultusunda uzatıp karmaşıklaştırmak mümkün.
Yazdığımız PHP dosyasının HTML kaynak kodu
Tanımlı değişkenlerin toplamı: <b>15</b><br>
Tanımlı değişkenlerin çarpımı: <b>60</b><br>
Birinci ve ikinci değişkenin bölmesi sonucu bölüm: <b>5</b><br>
Birinci ve üçüncü değişkenin bölmesi sonucu kalan: <b>1</b>

gibi düz HTML kodlarından ibaret olacaktır. Ziyaretçinin hiçbir şekilde bizim PHP kodlarımızı görme şansı yoktur. Kaynak kodundan kullandığımız \n karakteri HTML çıktımızda satırların tek bir satır gibi değil de alt alta yazılmış satırlar olarak oluşmasını sağladı. Bu gibi durumlarda kullanımı gerekli değilse de kullanımının gerekli olduğu durumlar kesinlikle vardır.
Birde bir önceki örneği dikkatli bir şekilde incelediyseniz orada değişkenin değerini verirken “ (tırnak işareti) kullanmama karşın son örnekte kullanmadım. Tırnak işareti kullanılmadığı zaman PHP değişkenimizin sayısal değer taşıyan bir değişken olduğunu anlayacaktır.
Diyelim ki elimizde iki tane metin bilgisi taşıyan değişken var. Bunlar $ad = "Fehmi Noyan" ve $soyad = "İSİ" olsun. Bu değişkenlerin değerlerini birleştirip tek bir değişkende saklamak mümkündür. Saklamak istediğimiz tek değişken $ad_soyad ise kullanmamız gereken komut kümesi
$ad_soyad = $ad . " " . $soyad;

gibi bir satırdır. Bu işlem için çok farklı birleştirme yolları olsa da bu kullanım birçok yerde işinizi görecektir.
Web Formundan Bilgi Almak
Buraya kadar anlattıklarım sadece bir giriş içindi (şimdiki aşama da daha işin başı, yani giriş bitmedi). Fakat sizinde bildiğiniz gibi dinamik bir sitede değişkenlerin değerleri kullanıcı tarafından sunucu sisteme yollanır. Bu iş için ya form yöntemi ya da adres satırından bilgi girişi yolu kullanılır. En yaygın ve kullanışlı olanı form yöntemidir.
<! --- ad_soyad.html --- >
<html>
<head><title>Ad ve Soyad Bilgisi</title></head>
<body bgcolor="#ffffff" text="#000000">
<form action="ad_soyad.php" method="get">
Adınız: <input type="text" name="ad"><br>
Soyadınız: <input type="text" name="soyad"><br>
<input type="submit" value="Gönder">
</form></body></html>

<?
################
# ad_soyad.php #
################
echo "Adınız $ad ve soyadınız $soyad.";
?>

Yukarıdaki örnek dosyaları yorum satırlarında belirtilen adlar ile yazıp kaydettikten sonra, istemcinizin adres satırına Linklerin Görülmesine İzin Verilmiyor
Linki Görebilmek İçin Üye Ol veya Giriş Yap yazıp karşınıza çıkacak formu doldurun. "Gönder" düğmesine bastıktan sonra PHP dosyamız çalışacak ve bize istenilen çıktıyı verecektir. Burada dikkat etmeniz gereken nokta istemcinizin adres satırındaki bilgidir. Eğer ben formda adım için “Fehmi Noyan” soyadım içinse “ISI” (Türkçe karakter kullanmamak için büyük i kullanmadım) bilgilerini girersem adres satırında
Linklerin Görülmesine İzin Verilmiyor
Linki Görebilmek İçin Üye Ol veya Giriş Yap

gibi bir satır görünecektir. Dikkat ederseniz form ile gönderilen bilgilerin name="..." kısmının PHP dosyamızdaki değişken adlarını ve adres satırındaki PHP dosyası ve ? karakterinden sonraki kısımların PHP dosyamıza gidecek değişkenlerin değerini verdiğini fark edeceksiniz.
HTML dosyamızda oluşturduğumuz web formunda kullandığımız <input> etiketi içindeki name="..." kodu bize o etiket ile gelen bilginin action=”...” kodu ile belirtilen dosyada aynı isimli değişken olarak kullanılacağını belirtir. Web formunu doldurmadan da, sadece adres satırına yukarıdaki satırı girerek de formumuza bilgi yollayabiliriz. Satırda PHP dosyamızın isminden sonra bir ? karakteri kullanılır, daha sonra her değişkenin adı ve değeri birbirinden & karakteri ile ayrılır. Bu yol ile web formlarından bilgi göndermek mümkündür ama pek kullanışlı değildir.
Formumuzda get yöntemini kullandığımız için adres satırında girdiğimiz bilgiler görüntülendi. Aynı HTML dosyasını formun bilgileri gönderme metodunu post olacak şekilde ayarlayıp tekrar deneyin. Bu sefer adres satırında girilen hiçbir bilgi olmayacaktır. Yani sadece
Linklerin Görülmesine İzin Verilmiyor
Linki Görebilmek İçin Üye Ol veya Giriş Yap

gibi bir satır olacaktır. Ben örneklerimde bundan sonra post yöntemini kullanacağım.
Diziler
Diziler bazen kullanılması kaçınılmaz olan ve her PHP programcısının kullanımını bilmesi gereken elemanlardır. Adından da anlaşılacağı üzere, diziler bir tek değişkenin değeri içerisinde birden çok değer saklar. Mesela içerisinde haftanın günlerini barındıran bir dizi değişken
$hafta = array(“Pazartesi”, ”Salı”, ”Çarşamba”, ”Perşembe”, ”Cuma”, ”Cumartesi”);

şeklinde tanımlanabilir. Dikkat ederseniz haftanın son günü olan “Pazar” dizi içerisinde yer almıyor. Pazar’ı dizi içerisine dahil etmek için
$hafta[] = ”Pazar”;

şeklinde bir ifade kullanabiliriz. Böylece son belirtilen “Pazar” elemanı dizinin son elemanı olmuş olur.
Dizi içerisindeki bir elemanı ekrana yazmak için, mesela dizinin 3. elemanı,
echo $hafta[2];

komutu kullanılır. Dizinin 3. elemanı için neden “2” rakamını kullandık? Bunun sebebi dizilerin ilk elemanının 1. değil 0. eleman olmasıdır. Bir dizi değişkeninin eleman sayısı count() işlevi ile öğrenilebilir.
echo count($hafta);

ifadesi ekrana 7 rakamını basacaktır. Dizi değişkenleri ve bunlar üzerinde işlem yapan işlevler ile ilgili bilgiyi PHP Manuel’in “Array Functions” kısmında bulabilirsiniz.
Mantıksal İşleçler
Bir PHP dosyasında en çok kullanacağınız ifadeleri oluşturan mantıksal işleçleri önceden programlama mantığı almamış bir kişi için ilk etapta anlaşılması biraz zor gelebilir fakat bu bölümü anlatırken bu durumu da göz önünde bulundurdum ve olabildiğimce sade ve anlaşılır bir dil kullanmaya gayret gösterdim.
Bu etapta tekrar hatırlatmak istiyorum, PHP ile kullanılan mantıksal işleçleri C dili ile kullanılanların tamamen aynısıdır ve kullanım şekilleri arasında hiçbir fark yoktur. İlk önce kullanılan işleçlerinin hangileri olduğunu ve daha sonra bunların kullanım şekillerini anlatmayı daha uygun gördüm.
İşleç İsmi
&& Ve
|| Veya
== Eşittir
! Değil
!= Eşit değil
> Büyüktür
< Küçüktür
>= Büyük ya da eşittir
<= Küçük ya da eşittir

Yukarıdaki işleçlerini mantıksal ifadelerde karşılaştırma ve verilen koşulun doğruluğunu sınama için kullanacağız. İlk iki işleç dışında, az çok matematik bilgisi olan birisi diğer işleçlerinin kullanım şeklini kestirmiştir. Aslında ilk ikisi de matematikte işlenmiş olan mantık konusunun bir parçasıdır.
Kullanacağımız ifadelere gelen bilgiler bilgisayar dilinde iki şekilde değerlendirilir. 0 ve 1, yani yanlış ve doğru. Kuracağımız tüm ifadeler bu iki değer çevresinde sınırlıdır.
&& İşleçi (Ve) || İşleçi (Veya)
0 && 0 = 0 0 || 0 = 0
1 && 0 = 0 1 || 0 = 1
0 && 1 = 0 0 || 1 = 1
1 && 1 = 1 1 || 1 = 1

Yukarıda && ve || işleçlerinin aldıkları değerler doğrultusunda oluşturdukları değerleri yazdım. Bu karşılaştırma işleçlerini birazdan anlatacağım mantıksal ifadeler içerisinde kullanacağız.



PHP'ye Giriş -2 (Devam)

PHP Komutları

if
if komutu bir ifadenin doğru olması halinde izleyen komut kümesini işletir. İngilizce anlamı “eğer” olan kelime üstlendiği görev bakımından da anlamı ile bir bütünlük içindedir.
<?
################
# if.php #
################

$a = 5;
$b = 3;
if ( $a > $b )
{ echo “a sayısı b sayısından büyüktür.”; }
?>

Yukarıdaki kod parçası $a değişkenindeki değerin sayısal olarak $b dekinden büyük olması halinde komut kümesinde belirtilen kodu yerine getirip ekrana “a sayısı b sayısından büyüktür.“ metnini basacaktır. Aksi taktirde (yani $a’nın sayısal değeri $b’ninkinden küçük ise) hiçbir işlem yapılmadan komut kümesindeki kod atlanır.
if... else ...
Bu komutta if komutunda olduğu gibi belirtilen ifadenin doğru olması halinde if ile belirtilen komut kümesini işletir, ifadenin yanlış olması halinde ise else ile belirtilen komut kümesi işletilecektir.
<?
###################
# if_else.php #
###################

$a = 2;
$b = 3;
if ($a > $b) {
echo “a sayısı b sayısından büyüktür.”;
} else {
echo “b sayısı a sayısından büyüktür.”;
}
?>

Parantez içindeki mantıksal ifadenin doğruluğu halinde if komutunu izleyen komut kümesini (“{“ ve “}” işaretleri ile sınırlı bölge) işletilir. Yukarıda $a ile belirtilen değişkenin sayısal olarak değeri $b ile belirtilenden büyük olması halinde ekrana “a sayısı b sayısından büyüktür.” metni aksi taktirde, yani $a değişkeni sayısal olarak $b'den küçükse, ekrana “b sayısı a sayısından büyüktür.” metni basılacaktır. Komut kümesinde belirtilen kod sadece ekrana yazı yazma değil, her türlü işlem için düzenlenebilir.
while
Yine İngilizce anlamı “esnasında” olan kelime yaptığı görev itibari ile anlamına yakındır. Parantez içinde belirtilen koşul doğru olduğu sürece istenilen komut kümesini işletir. Aşağıdaki örnek ilk bakışta biraz karışık gelebilir fakat dikkatli ve adım adım takip ederseniz pek de karışık olmadığını anlayacaksınız.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# while.php #
################

$a = 1;
while($a < 7):
echo “<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n”;
$a = $a + 1;
endwhile;
?>

</body>
</html>

Yukarıdaki örnek hem while döngüsünün kullanımına hem de HTML içinde PHP kullanımına güzel bir örnek oluşturuyor. Kullandığım while döngüsünü aşağıdaki gibi de yazabilirdim.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# while.php #
################

$a = 1;
while($a < 7)
{
echo “<h$a>Bu h$a ile yazılmış bir başlık.</h$a><br>\n”;
$a++;
}
?>

</body>
</html>

Sonuç yine aynı olacaktır. Kullanım açısından bir fark yoktur hangisinin kullanılacağı programcıya kalmıştır fakat ben örneklerimde hep ikinci kullanımı tercih ediyorum.
Yukarıdaki örnekte yabancı olduğunuz bir kullanım $a++ ifadesidir (Bu kullanımın aynısı C’de de vardır) Bu ifade $a = $a + 1 ifadesi ile aynıdır (Programcılıkta çok kullanılan bir ifadedir fakat deneyimi olmayanlar biraz zorlanacaktır). Bunun anlamı, ”$a’daki değeri bir arttır ve sonra bu değeri $a’nın yeni değeri olarak ata” dır. Yani $a = 1 ise $a++’dan sonra $a = 2 olacaktır. Aynı şekilde $a--'de, “$a’nın değerini bir azalt ve bu değeri $a’nın yeni değeri olarak ata” dır.
Yukarıdaki örnekte ilk olarak $a değişkenine 1 değeri atanıyor ve bu <h$a> ifadesi ile bir HTML etiketine çevriliyor. $a = 1 değeri için bu ifade <h1>, $a = 2 için bu ifade <h2> ... diye değerler alır. while döngüsü ile $a’nın alabileceği en son değerin 6 olduğu belirtilmiştir ($a < 7, yedi olduğu an döngü son bulur!). $a’nın 7 değerini alması ile belirtilen koşul yanlış olur (yani 0) ve döngü işletilmez. Eğer $a++ ifadesi kullanılmamış olsaydı, program sonsuz döngüye girecekti bu da ekrana sonsuz kere <h1> etiketi ile belirtilen metnin basılması demektir. (Aslında sunucu sistemdeki PHP ayar dosyasında öntanımlı olarak PHP dosyalarının maksimum çalışma süreleri 30 saniye olarak belirlendiği için sonsuz döngü sözcükleri tam olarak doğru değildir).
while döngüsünde koşul önce gözden geçirilir, daha sonra işlemler gerçekleştirilir.
do ... while
do...while döngüsü, while döngüsü ile aynı işleve sahiptir. Yalnız arada bir fark vardır. While döngüsünde koşul döngüye girilmeden kontrol edilir buna karşın do....while döngüsünde koşul döngünün sonunda kontrol edilir.
<?
$a = 0;
do {
print $a;
} while($a > 0);
?>

Yukarıdaki kod normal while döngüsü ile yazılmış olsaydı, yani aağıdaki gibi
<?
$a = 0;
while($a > 0) {
print $a;
}
?>

ekrana hiçbir çıktı vermeyecekti. Halbuki ilk örnekte ekrana “0” basılacaktır. Do....while ile oluturulan bir döngü while ile de oluşturulabilir ve benim şahsi görüşüm, while döngüsünün kullanımı daha kolaydır. Tabi ki bu döngünün de kendine has kullanım alanları vardır ama ben şu ana kadar kendi yazdığım betiklerde bu tür döngüler için hep while döngüsünü kullandım.
for
for döngüsü de hemen hemen aynı işlevi görür. Kullanım şeklini, while döngüsündeki örnek ile aynı çıktıyı verecek bir örnek ile açıklamak istiyorum.
<html>
<head><title>HTML içinde kullanılan PHP</title>
</head>
<body bgcolor="#ffffff" text="#000000">

<?
################
# for.php #
################

for ($a = 1; $a < 7; $a++)
{
echo "<h$a>Bu h$a ile yazılmış bir başlıktır.</h$a><br>\n";
}
?>
</body>
</html>

Yukarıdaki kod da while döngüsündeki ile aynı çıktıyı verir. for döngüsünde değişkenin başlangıç değeri ilk olarak yazılır, daha sonra koşul ve en sonunda ise değişken için işletilmesi gereken bölüm gelir. Yani kullanımın kalıbı
for (ilk_değer;koşul;işlem)

şeklindedir.
Tabii benim kullandığım örnek tüm döngüler için geçerli, öyle durumlar ile karşılaşırsınız ki alternatifiniz olmaz yani sadece for ya da while döngüsünü kullanabilirsiniz. Nasıl olsa hepsi aynı işi yapıyor diye üstten bakıp geçmeyin, iyice kavrayın.
switch
switch döngüsü aslında iç içe geçmiş if döngüleridir. Fakat, kişisel deneyimlerime dayanarak söylüyorum, birçok if kullandığınız bir döngüde iş bazen gerçekten içinden çıkılmaz bir hal alıyor. Mesela bir web formu ile (drop-down menu ile) size bir değer gelecek. Siz bu değerin ne olduğunu anlamak istiyorsunuz. Bunun için menüde önceden tanımlı değerler arasında bir secim yapılır. İşte bu seçim için switch döngüsü kullanılır. Aşağıdaki dosyaları yorum kısımlarında belirtilen isimler ile kaydedin ve daha sonra istemcinizden menu.html dosyasını açın.
<!-- menu.html adı ile kaydedin -->
<html>
<head>
<title>Menu</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<form action="menu.php" method="post">
<b>İşletim sisteminizi seçin</b><br>
<select name=”os_type” size=”1”>
<option value=”win”>Windows 9x</option>
<option value=”winnt”>Windows NT</option>
<option value=”linux”>Linux</option>
<option value=”unix”>UNIX</option>
<option value=”os2”>OS/2</option>
<option value=”macos”>MacOS</option>
</select>
<input type="submit" value=” Sorgula “>
</form>
</body>
</html>

<?
// menu.php adı ile kaydedin

switch($os_type)
{
case “win” :
echo “Kullandığınız işletim sistemi Windows 9x”;
break;
case “winnt” :
echo “Kullandığınız işletim sistemi Windows NT”;
break;
case “linux” :
echo “Kullandığınız işletim sistemi Linux”;
break;
case “unix” :
echo “Kullandığınız işletim sistemi UNIX”;
break;
case “os2” :
echo “Kullandığınız işletim sistemi OS/2”;
break;
case “macos” :
echo “Kullandığınız işletim sistemi MacOS”;
break;
}
?>

Yukarıdaki örnek kullanıcıya kullandığı işletim sistemini soruyor ve gelen cevap doğrultusunda döngüde belirtilen kısmı işletiyor. Kullandığım break komutu programın o kısmının işletilmesi halinde döngüden çıkılmasını sağlar, yani kullanıcı işletim sistemin Linux olarak işaretlemişse Windows, WindowsNT ve en son Linux bölümü işletilir. Linux bölümündeki “Kullandığınız işletim sistemi Linux” metni ekrana basılır ve bir sonraki komut olan break işletilir, break komutunun işlemesi ile döngüden çıkılır ve böylece diğer değerler kontrol edilerek vakit kaybedilmez.
switch döngüsünde kullanılan ve benim şu örnekte kullanmadığım bir özelliği daha var: default seçeneği.
Bu seçenek diğer hiçbir seçim doğru olmadığı taktirde çalıştırılacak kısımdır. Bir örnek vermek gerekirse.
<?
// menu.php adı ile kaydedin

$i = 5;
switch($i)
{
case “2”:
echo “Değeri 2”;
break;
case “3”:
echo “Değeri 3”;
break;
default:
echo “Değeri bilinmiyor”;
}
?>

Bu kod ekrana “Değeri bilinmiyor” yazacaktır. Çünkü siz $i değişkenine tanımlı olan 2 ve 3 değerleri dışında ne değer verirseniz verin bu iki koşul dışında kalan bölüm yani default ile tanımlı bölüm işletilecektir.
Bazı PHP İşlevleri
Include() ve Require() işlevleri
include ve require işlevleri bir PHP programcısının hayatını kolaylaştıran başlıca işlevlerdendir. Bu iki işlevin görevleri birbirinin aynı olsa da işleyişlerinde ufak ama önemli bir fark vardır. Bu iki işlev parametre olarak aldıkları dosyayı sanki o dosyanın tüm içeriğini yazılmışçasına işler. Mesela
<?
#################
# inc_req.php #
#################

include (“./dosya.html”);
require (“./dosya.html”);

?>

Bu PHP kodu bulunduğu dizindeki dosya.html dosyasını iki kere ekrana basar. Yani sanki siz o dosyanın içeriğini elle yazmışsınız gibi çalışır. Bu iki işlev arasındaki fark, require() işlevi sadece gerektiği durumlarda dosyayı işler fakat include() işlevi dosya ekrana basılmayacak olsa bile (bir döngü içinde olabilir) dosyayı açıp hafıza kaybına sebep olur. Bunun için include() işlevini kullanmanızın zorunlu olmadığı durumlarda require() işlevini kullanmanız performansı arttıracaktır.
mail() işlevi
Adından da anlayacağınız üzere PHP’de e-posta göndermek için kullanılan işlevdir. Kullanımı çok basit ve zahmetsiz olmasına karşın eğer denemelerinizi evde bir Windows sistemi üzerinde gerçekleştiriyorsanız bu işlevi kullanmak için bilgisayarınıza bir de eposta sunucusu kurmanız gerekli (ne yazık ki PHP ile kullanılan birçok işlev Windows altında sorun çıkarıyor). Kurulu bir Linux sistemde böyle bir sorununuz yok, çünkü Linux ile birlikte kurulan sendmail programı e-posta gönderme işinizi hallediyor.
<?
######################
# mail_gonder.php #
######################

mail ($kime, $konu, $mesaj, ”From: $kimden\n”);

?>

Yukarıdaki tek satır $kimden değişkeni ile gelen kişinin adresi ile $kime adlı adrese $konu adlı ve içeriği $mesaj olan e-postayı gönderir. “From:” bölümü e-postanın kimden geldiğini belirtir. Tabi yukarıdaki PHP dosyasının çalışabilmesi için bu dosyaya gerekli bilgileri yollayacak HTML dosyasının da yazılması gerekli.
system() işlevi
Bu işlev PHP bir sistem modülü olarak kurulduğunda işletilebilir bir işlevdir. C programlama dilindeki system() işlevi ile aynı görevi yapar. Yani işleve parametre olarak girilen komutu işletim sistemi üzerinde işletir.
<?
##################
# system.php #
##################

$dizin_icerigi = system(“ls”);
echo $dizin_icerigi;
?>

Yukarıdaki örnek PHP dosyamızın bulunduğu dizinin içeriğini ekrana basar.
isset() ve unset() işlevleri
isset() işlevi bir değişkenin içersinde bir değer bulunup bulunmadığını kontrol eder. Bazen bir PHP programında değer atanmamış değişkenler de bulunabilir. Bu değişkenler boş yere bilgisayarın hafızasında yer işgal eder. Ayrıca bu işlevi bir formdan bilgi alırken bilginin gönderilip gönderilmediğini kontrol etmek için de kullanabiliriz.
unset() işlevi ise kendisine parametre olarak verilen değişkeni yok eder. Kullanımları isset($degisken) ve unset($degisken) şeklindedir.
PHP ile Dosya İşlemleri
Daha öncede belirttiğim gibi PHP, C programlama dili ile birçok benzerlik göstermesine rağmen dosya işlemleri gibi uğraştırıcı işlemlerde programcıya büyük kolaylıklar sağlar. PHP’de dosyalar ile kullanılabilecek birçok işlev olmasına rağmen (altmıştan fazla!) burada sadece dosya ve dizin açma, dosyadan ve dizinden okuma ve dosyaya bilgi yazma gibi konulara değineceğim.
fopen() işlevi
fopen() işlevi PHP’de dosyaları açmak için kullanılır. İşleve parametre olarak iki değer girilir. Birincisi, dosya adı ve ikinci de üzerinde işlem yapılacak dosyanın hangi işlem için kullanılacağıdır.
<? fopen(“dosya_adı”, ”amaç”); ?>

İşlevin kullanımı yukarıdaki kalıba göredir. “dosya_adı” ile belirtilen yere üzerinde işlem yapılacak dosya tam yolu ile yazılmalıdır, “amaç” kısmına ise dosyanın açılacağı kip yazılır.
Kip Kullanım Amacı
r Dosya sadece okuma için açılır. İmleç dosyanın başında konumlanır.
r+ Dosya hem yazma hem okuma için açılır. İmleç dosyanın başında konumlanır.
w Dosya yazma için açılır. Eğer aynı isimli dosya varsa silinir ve yeniden oluşturulur.
w+ Dosya hem yazma hem okuma için açılır. Eğer aynı isimli dosya varsa silinir ve yeniden oluşturulur.
a Dosya sadece yazma için açılır. İmleç dosyanın sonuna konumlandırılır. Dosya yoksa oluşturulur.
a+ Dosya hem yazma hem okuma için açılır. İmleç dosyanın sonuna konumlanır. Dosya yoksa oluşturulur.

Yukarıdaki tablo fopen() işlevi ile birlikte kullanabileceğimiz dosya açma kipi parametreleridir.
<?
#################
# dosya_ac.php #
#################
$dosya_ac = (fopen(“./dosya.txt”, ”r”));
if ($dosya_ac)
{
echo “Dosya başarı ile açıldı ”;
if (fclose($dosya_ac))
{
echo “ve kapatıldı.”;
}
else
{

echo “fakat kapatırken hata oluştu!”;
}
}
else
{
echo “Dosyayı açmaya çalışırken bir hata oluştu!”;
}
?>

Yukarıdaki PHP dosyası dosyanın açılıp açılamamasına göre ekrana bir mesaj verecektir. Açılan bir dosyayı kapatmak için fclose() işlevi kullanılır.
Yukarıdaki örnekte ilk if deyiminin içerisinde başka bir if deyimi kullandım. Bir dosyayı açıp tekrar kapatırken karşılaşabileceğimiz tüm ihtimalleri göz önünde bulundurmamız gerekmektedir. Mesela dosya açma işlemi başarılı bir şekilde gerçekleşmediyse PHP ekrana “Dosyayı açmaya çalışırken bir hata oluştu!” yazısını yazacaktır. Şayet dosya açma işlemi başarılı ise “Dosya başarı ile açıldı ” yazısını yazacak ve dosyanın doğru bir şekilde kapatılıp kapatılamaması durumuna göre “ve kapatıldı.” veya “fakat kapatırken hata oluştu!” ifadelerinde birisini ekrana basacaktır.
fgets() ve fread() işlevleri
Bu iki işlev yazma modunda açılmış bir dosyadan bilgi almak için kullanılır. Aralarında ufak bir fark vardır. fgets() işlevi metin dosyalarında kullanılır ve dosyayı satır satır okur. fread() işlevi ise dosyayı ikili kipte (bayt bayt) okur.
<?
####################
# dosya_oku.php #
####################

$dosya = fopen(“./dosya.txt”, ”r”);
while (!feof($dosya))
{
$satir = fgets($dosya,1024);
echo “$satir<br>”;
}
fclose($dosya);
?>
ertooth - avatarı
ertooth
Ziyaretçi
26 Şubat 2008       Mesaj #15
ertooth - avatarı
Ziyaretçi
php dili ile site içi arama motoru yapmak istiyorum.fakat hiç bilmiyorum php yi siz örnekler ile gösterebilirmisiniz.
vimehmet81 - avatarı
vimehmet81
Ziyaretçi
29 Mart 2008       Mesaj #16
vimehmet81 - avatarı
Ziyaretçi
abi benim hep kafam karıstı run calıstır nerden yapcaz o söylediginiz moda nerden gecicez

Benzer Konular

1 Nisan 2010 / ThinkerBeLL Edebiyat
31 Ocak 2010 / Misafir Soru-Cevap
9 Kasım 2013 / mek444 Arşive Kaldırılan Konular