PHP Fonksiyonlar | Detaylı Anlatım Ders 4

Konu sahibi son olarak 2605 gün önce görüldü
Fonksiyonlar

Fonksiyonlar, belirli bir işi yapması için önceden hazırlanmış olan program parçalarıdır. Bir kere tanımlanırlar daha sonra ihtiyaç duyulan yerlerde çağrılıp kullanılırlar. Bu açıdan fonksiyonlar programlama dillerinin ayrılmaz parçalarıdır.

PHP'de önceden tanımlı birçok fonksiyonun yanında kullanıcılar da istedikleri fonksiyonları tanımlayıp kullanabilirler. Örneğin sürekli olarak yaptığınız bir hesaplama için farklı sayfalarda hep aynı kodları yazmak ya da kopyalayıp yapıştırmak hem zaman alıcı bir işlemdir hem de gereksiz bir kodlamadır. Bunun yerine fonksiyon, bir sayfada tanımlanır daha sonra ihtiyaç duyulan yerlerde çağrılıp kullanılır. Dolayısıyla tekrar tekrar yazılması gerekmez.

Şu ana kadar kullandığımız echo() ve rand() komutları da birer fonksiyondur. Bu şekilde PHP'de tanımlanmış birçok kullanışlı fonksiyonlar vardır. Örneğin biz, bir diziyi sıralamak için iç içe döngüler kullanıp karmaşık kodlar yazarak bu işi ancak yapabilmişken bunu sort() fonksiyonu ile kolayca yapabiliyoruz. Başka bir örnek vermek gerekirse; diyelim ki bir sayının istediğimiz bir üssünü hesaplamak istersek bunun için uzun uzun kodlar yazmamız gerekecektir. Ancak pow() fonksiyonu bunu zaten kendi içinde bizim için hesaplamaktadır. Bize düşen sadece pow($sayi,$us) yazmaktır.

Bir fonksiyon yapısına göre;

  • Dışarıdan parametre alıp, hesaplama yapıp geriye değer gönderebilir
  • Dışarıdan parametre alıp, hesaplama yapıp geriye bir değer göndermeyebilir
  • Dışarıdan parametre almadan hesaplama yapıp geriye değer gönderebilir
  • Dışarıdan parametre almadan hesaplama yapıp geriye değer göndermeyebilir

Fonksiyonlar, tanımlamasına göre yukarıdakilerden birine uyacak şekilde çalışırlar. Ancak genel bir fonksiyon tanımlaması şu şekilde yapılır.


Kod:
function fonksiyon_adi($parametre1, $parametre2, ...){
   // fonksiyonun yapacağı iş ya da hesaplamalar
   return $deger;
}


Yukarıdaki tanımlamayı özetle açıklamak gerekirse;

  • Fonksiyon tanımı function sözcüğüyle başlar.
  • Fonksiyonun adı, sayı ile başlayamaz, türkçeye özgü karakterler ve boşluk barındıramaz. Başına $ işareti konmaz.
  • Parametreler yazılabilir ya da yazılmayabilir (isteğe bağlı)
  • return ile geriye değer gönderilebilir ya da gönderilmeyebilir (isteğe bağlı)
  • return ifadesi fonksiyonun bittiği yerdir. return'den sonra yazılan kodlar çalışmaz, göz ardı edilir.
  • Bir fonksiyonda bir tane return olabilir. (Ancak if yapısında ya da switch case yapısında birden fazla return kullanılabilir. Zaten durumlardan sadece bir sağlanacağı için return'lerden sadece biri çalışacaktır)
Bir fonksiyonun yapısında her tür php kodu kullanılabilir. Hatta fonksiyon kendi içerisinde farklı fonksiyonları çağırıp kullanabilir.


Fonksiyon Tanımlama

Kullanıcı tanımlı fonksiyonlara çok basit bir örnekle başlayalım. Bu örnekte ekrana sadece Merhaba Dünya! yazan bir fonksiyon tanımlayıp çağıralım.

Kod:
<html>
<body>
<?php
function yaz(){
   echo "Merhaba Dünya!";
}
 
yaz();
?>
</body>
</html>
Yazdığımız örnekte fonksiyonumuzun adı yaz'dır. Görüldüğü üzere hiçbir parametre almadığı gibi geriye de herhangi bir değer göndermiyor. Daha sonra tanımladığımız fonksiyonu yaz(); diyerek çağırıyoruz. Hiçbir parametre almasa dahi () parantezlerini kullanmamız gerekir.



Şimdi örneğimizi biraz geliştirelim. Bu kez fonksiyonuz dışarıdan aldığı metni ekrana yazsın.

Kod:
<html>
<body>
<?php
function yaz($metin){
   echo $metin,"<br>";
}
 
yaz("Fazla laf yalansız olmaz!");
 
$gunun_sozu="Bu kadar cehalet ancak tahsille olur!";
yaz($gunun_sozu);
?>
</body>
</html>


Örnek: Bu kez aldığı iki sayıyı toplayarak geriye sonucu gönderen bir fonksiyon tanımlayalım ve çağıralım.

Kod:
<?php
function topla($sayi1,$sayi2){
   $toplam=$sayi1+$sayi2;
   return $toplam;
}
 
$sonuc=topla(45,14);
echo $sonuc,"<br>";
 
$s1=45;
$s2=14;
$sonuc=topla($s1,$s2);
echo $sonuc,"<br>";
 
echo topla(45,14),"<br>";
echo topla($s1,$s2),"<br>";
?>
Eğer bir fonksiyon return ile geriye bir değer gönderiyorsa o fonksiyon kullanılırken bir değişkene atanmalı ki; bu değişken fonksiyondan dönen değeri tutacaktır. Daha sonra bunu istediğiniz yerde kullanabilirsiniz. Burada biz, $sonuc isimli bir değişken kullandık. Diğer bir yöntem ise dönen değeri başka bir fonksiyona kullanması için vermektir. Yukarıdaki örnekte, echo topla(45,14),"<br>"; diyerek topla() fonksiyonundan dönen değeri doğrudan ekrana yazması için echo() fonksiyonuna verdik.



Örnek: Aldığı iki sayıyı, aldığı operatöre göre işleme alıp sonucu gönderen fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function hesapla($sayi1,$sayi2,$islem){
   switch ($islem){
      case "+": $sonuc=$sayi1+$sayi2; break;
      case "-": $sonuc=$sayi1-$sayi2; break;
      case "*": $sonuc=$sayi1*$sayi2; break;
      case "/": $sonuc=$sayi1/$sayi2; break;
      default: $sonuc="Geçersiz işlem";
   }
   return $sonuc;
}
 
$sonuc=hesapla(6,4,"*");
echo $sonuc,"<br>";
 
$s1=42;
$s2=3;
echo hesapla($s1,$s2,"+"),"<br>";
echo hesapla($s1,$s2,"-"),"<br>";
echo hesapla($s1,$s2,"*"),"<br>";
echo hesapla($s1,$s2,"/"),"<br>";
?>


Örnek: Aldığı metni aldığı sayı kadar ekrana yazan fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function yaz($metin,$sayi){
   for ($i=1;$i<=$sayi;$i++)
      echo $metin,"<br>";
}
 
yaz("Bu metni on kere yaz bakalım.",10);
 
$txt="Yazdır yazdır nereye kadar?";
$number=20;
yaz($txt,$number);
?>


Fonksiyon Örnekleri

Örnek: Aldığı iki notun ortalamasını gönderen fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function ortalama($not1,$not2){
   return ($not1+$not2)/2;
}
 
$y1=64;
$y2=88;
echo "<b>Not1</b>=$y1 <b>Not2</b>=$y2 <b>Ortalama</b>=",ortalama($y1,$y2);
?>


Örnek: Aldığı satır ve sütun sayısına göre her sütunun genişliği 80px olacak şekilde bir tablo oluşturan fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function tablo($satir,$sutun){
   echo "<table border=\"1\" width=\"",$sutun*80,"\">";
   for($i=1;$i<=$satir;$i++){
      echo "<tr>";
      for($j=1;$j<=$sutun;$j++)
         echo "<td>&nbsp;</td>";
      echo "</tr>";
   }
   echo "</table>";
}
 
tablo(5,8);
echo "<br>";
$row=9;
$col=12;
tablo($row,$col);
?>


Örnek: Aldığı sayıya karşılık gelen ay adını gönderen fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function ay_yaz($sayi){
   $aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
   return $aylar[$sayi-1];
}
 
$gun=30;
$ay=ay_yaz(3);
$yil=2010;
echo "<strong>Tarih</strong>: $gun $ay $yil";
?>


Örnek: Aldığı diziyi ekranda sırasız liste şeklinde gösteren fonksiyonu yazıp çağıralım.

Kod:
<?php
function liste($elemanlar){
   echo "<ul>";
   foreach($elemanlar as $eleman)
      echo "<li>$eleman</li>";
   echo "</ul>";
}
 
$ic_donanim=array("İşlemci","Anakart","RAM","Ekran Kartı","Sabitdisk");
liste($ic_donanim);
 
liste(array("Klavye","Fare","Ekran","Yazıcı","Kasa","Hoparlör"));
?>


Örnek: Aldığı dizinin değerlerini açılır listeye ekleyen fonksiyonu yazıp çağıralım.

Kod:
<?php
function acilir_liste($secenekler){
   echo "<select>";
   foreach($secenekler as $secenek)
      echo "<option>$secenek</option>";
   echo "</select>";
}
 
$merkezler=array("Ankara","İstanbul","İzmir","Adana","Erzurum");
acilir_liste($merkezler);
?>


Örnek: Aldığı 3 basamaklı sayının birler, onlar ve yüzler basamağındaki rakamları bir dizi olarak geriye gönderen fonksiyonu yazıp çağıralım.

Kod:
<?php
function basamaklar($sayi){
   $birler=$sayi%10;
   $onlar=(($sayi-$birler)/10)%10;
   $yuzler=(($sayi-$birler)-$onlar*10)/100;
   return array("birler"=>$birler,"onlar"=>$onlar,"yüzler"=>$yuzler);
}
 
$sayimiz=854;
$donen_dizi=basamaklar($sayimiz);
echo "Sayımız=$sayimiz<br>";
echo "Birler=",$donen_dizi["birler"],"<br>";
echo "Onlar=",$donen_dizi["onlar"],"<br>";
echo "Yüzler=",$donen_dizi["yüzler"],"<br>";
?>


Örnek: Çağrıldığında içerisinde 1 ile 100 arasında 10 sayı bulunan bir dizi gönderen fonksiyonu tanımlayıp çağıralım.

Kod:
<?php
function secilenler(){
   for($i=1;$i<=10;$i++)
      $dizi[]=rand(1,100);
   return $dizi;
}
 
$donen_dizi=secilenler();
foreach($donen_dizi as $deger)
echo $deger," ";
?>


Örnek: Aldığı dizideki sayıların en büyüğünü, en küçüğünü ve ortalamasını gönderen fonksiyonu yazıp çağıralım.

Kod:
<?php
function isle($sayilar){
   $eb=$sayilar[0];
   $ek=$sayilar[0];
   $toplam=0;
   $sayac=0;
   foreach($sayilar as $deger){
      $ek=($deger<$ek)?$deger:$ek;
      $eb=($deger>$eb)?$deger:$eb;
      $toplam+=$deger;
      $sayac++;
   }
   return array("ek"=>$ek,"eb"=>$eb,"ort"=>$toplam/$sayac);
}
 
$degerler=array(43,6,15,41,97,65,84,68,45,64,94,72,56);
$sonuc=isle($degerler);
echo "En küçük sayı=",$sonuc["ek"],"<br>";
echo "En büyük sayı=",$sonuc["eb"],"<br>";
echo "Ortalama=",$sonuc["ort"],"<br>";
?>


Varsayılan Değer Alan Fonksiyonlar

Tanımlı olan bir fonksiyonu çağırırken tanımlamasında belirtilen sayıda ve tipte parametre göndermek gerekmektdir. Eğer fonksiyonun beklediği parametreler gelmezse fonksiyon hata verecektir. Bu durumda fonksiyonun hatasız çalışması için parametrelere varsayılan değer ataması yapılır.

Eğer fonksiyonun beklediği parametre gelmezse varsayılan değeri, gelirse gelen değerler kullanılır. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
function ortalama($not1,$not2,$not3){
   $ort=($not1+$not2+$not3)/3;
   return $ort;
}
 
echo "Ortalama=",ortalama(60,90); // hata verecektir. fonksiyon 3 parametre istiyor
?>
Örnekte gönderilen notların ortalamasını bulmak istiyoruz. Fonksiyon tanımlmasına bakıldığında 3 tane parametre yani not beklediği görüldüğü halde 2 tane not gönderilerek çağırılmış. Bundan dolayı hata oluşmaktadır. Hatayı engellemek için 3. not için varsayılan değer ataması yapalım.


Kod:
<?php
function ortalama($not1,$not2,$not3="yok"){
   if ($not3=="yok")
      $ort=($not1+$not2)/2;
   else
      $ort=($not1+$not2+$not3)/3;
   return $ort;
}
 
echo "Ortalama=",ortalama(60,90); // hatasız çalışacaktır.
echo "<br>";
echo "Ortalama=",ortalama(60,90,30); // hatasız çalışacaktır.
?>
Eğer 3. not gönderilmezse "yok" olarak kabul edilir ve iki notun ortalaması, değilse 3. not gönderilmiş demektir. Bu durumda da üç notun ortalaması hesaplanarak gönderiliyor.



Örnek: Aldığı metni aldığı renkte ekrana yazdıralım. Eğer renk belirtilmezse siyah renkte yazdırılsın.

Kod:
<?php
function yaz($metin,$renk="#000000"){
   echo "<font color=\"$renk\">$metin</font>";
}
 
echo yaz("Bir musibet bin nasihatttan iyidir!","blue");
echo "<br>";
echo yaz("Çalışan demir ışıldar!"); // renk gönderilmediğinden varsayılan olarak siyah yazılır
?>


Örnek: Dairenin alanını hesaplayan fonksiyonu yazalım. Eğer pi değeri belirtilmezse 3.14 kabul edilsin.

Kod:
<?php
function daire($r,$pi="3.14"){
   $sonuc=$pi*$r*$r;
   return $sonuc;
}
 
echo "Alan=",daire(4,3); // ekrana Alan=48 yazar. $pi=3 kullanıldı
echo "<br>";
echo "Alan=",daire(4); // ekrana Alan=50.24 yazar. $pi=3.14 kullanıldı
?>


Örnek: Aldığı sayının belirtilen yüzdesini hesaplayan fonksiyonu tanımlayalım. Eğer yüzdesi belirtilmezse sayının kendisi gönderilsin.

Kod:
<?php
function yuzdesi($sayi,$oran="100"){
   return ($sayi*$oran)/100;
}
 
echo "60'ın %12'si = ",yuzdesi(60,12);
echo "<br>";
echo "70'in %100'ü = ",yuzdesi(70);
?>
Örnek: Aldığı sayının aldığı üssünü bulan fonksiyonu tanımlayalım. Eğer üs belirtilmezse karesini hesaplasın.

Kod:
<?php
function us_al($sayi,$üs=2){
   $sonuc=1;
   for($i=1;$i<=$üs;$i++)
      $sonuc*=$sayi;
   return $sonuc;
}
 
echo "5<sup>3</sup>=",us_al(5,3);
echo "<br>";
echo "4<sup>5</sup>=",us_al(4,5);
echo "<br>";
echo "4<sup>2</sup>=",us_al(4); // üs 2 kabul edildi
?>


Örnek: Aldığı notun 5 üzerinden karşılığını sayı olarak yada yazı olarak gönderen fonksiyonu tanımlayalım.

Kod:
<?php
function karne($notu,$bicimi="sayi"){
   $sayi=array(0,1,2,3,4,5);
   $yazi=array("Başarısız","Kalır","Geçer","Orta","İyi","Pekiyi");
   switch ($notu){
      case ($notu>=85 and $notu<=100): $sonuc=($bicimi=="sayi")?$sayi[5]:$yazi[5]; break;
      case ($notu>=70 and $notu<=84): $sonuc=($bicimi=="sayi")?$sayi[4]:$yazi[4]; break;
      case ($notu>=55 and $notu<=69): $sonuc=($bicimi=="sayi")?$sayi[3]:$yazi[3]; break;
      case ($notu>=45 and $notu<=54): $sonuc=($bicimi=="sayi")?$sayi[2]:$yazi[2]; break;
      case ($notu>=25 and $notu<=44): $sonuc=($bicimi=="sayi")?$sayi[1]:$yazi[1]; break;
      case ($notu>=0 and $notu<=24): $sonuc=($bicimi=="sayi")?$sayi[0]:$yazi[0]; break;
      default: $sonuc="Hata: Geçersiz not!";
   }
   return $sonuc;
}
 
echo "Karne notunuz = ".karne(62)." ( ".karne(62,"yazi")." ) ";
echo "<br>";
echo "Karne notunuz = ".karne(-5)." ( ".karne(-5,"yazi")." ) ";
?>
Yukarıdaki örneğimizde notun biçimi belirtilmezse sayı karşılığı, belirtilirse yazı karşılığı gönderilir.

Global Değişkenli Fonksiyonlar

Bir fonksiyon içinde tanımlı olan değişkenler sadece o fonksiyon içinde geçerlidir. Dolayısıyla fonksiyon içindeki değişkenleri fonksiyon dışında kullanamazsınız. Bunu yapabilmek için return ile kullanmak istediğimiz değişkenleri göndeririz. Aynı şekilde fonksiyon dışındaki değişkenleri de fonksiyon içinde kullanamazsınız. Eğer bir değişkeni global olarak tanımlarsanız o değişkeni sayfa içerisindeki her yerde kullanabilirsiniz. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$sayi=15;
 
function iki_kat($sayi){
   $sayi=$sayi*2; // $sayi değişkeninin değeri iki kat arttırılıyor
   return $sayi;
}
 
echo iki_kat($sayi); // ekrana 30 yazar.
echo "<br>";
echo $sayi; // ekrana 15 yazar.
?>
$sayi değişkeninin değeri iki kat arttırıldığı halde echo $sayi; komutu ekrana 15 yazar. Çünkü fonksiyon içindeki $sayi değişkeni ile fonksiyon dışındaki $sayi değişkeni farklıdır. İsimleri aynı olsa dahi tanımlandığı yerler itibariyle farklı olduklarından iki ayrı değişken olarak değerlendirilirler. Aynı örneği global değişken tanımlamasını kullanarak yapalım.

Kod:
<?php
$sayi=15;
 
function iki_kat($sayi){
   global $sayi;
   $sayi=$sayi*2; // $sayi değişkeninin değeri iki kat arttırılıyor
   return $sayi;
}
 
echo iki_kat($sayi); // ekrana 30 yazar.
echo "<br>";
echo $sayi; // ekrana 30 yazar.
?>
Görüldüğü gibi $sayi değişkeni global olarak tanımlanmıştır. Bundan dolayı fonksiyon bu değişkeni tanır değerini 2 kat arttırmaktadır. Dolayısıyla fonksiyon dışındaki $sayi değişkeni ile fonksiyon içindeki $sayi değişkeni aynı değişkendir.



Örnek: Aldığı sayıları sayfada tanımlı olan $toplam değişkenine ekleyen fonksiyonu tanımlayalım.

Kod:
<?php
$toplam=30;
echo "Toplam=",$toplam; // Toplam=30
echo "<br>";
 
function ekle($sayi1,$sayi2){
   global $toplam;
   $toplam+=$sayi1+$sayi2;
}
 
ekle(10,15);
echo "Toplam=",$toplam; // Toplam=55
?>


Örnek: Aldığı kullanıcı adı ve şifre bilgilerini tanımlı değerlerle karşılaştıran fonksiyonu tanımlayalım.

Kod:
<?php
$kullanici_adi="muyo";
$sifre="muric";
 
function giris($user,$password){
   global $kullanici_adi;
   global $sifre;
   if ($user==$kullanici_adi and $password==$sifre)
      $login=true;
   else
      $login=false;
   return $login;
}
 
if (giris("hayr","h1845")==true)
   echo "Giriş başarılı";
else
   echo "Hatalı kullanıcı yada şifre!";
 
echo "<br>";
 
if (giris("muyo","muric")==true)
   echo "Giriş başarılı";
else
   echo "Hatalı kullanıcı yada şifre!";
?>


Örnek: 1 ile 100 arasında,10 dan az sayıda rastgele ürettiği sayıları $sayılar dizisine ekleyen fonksiyonu tanımlayalım.

Kod:
<?php
$sayilar=array();
 
function uret(){
   global $sayac;
   global $sayilar;
   $tane=rand(1,10); // üretilecek sayı sayısı
   for($i=1;$i<=$tane;$i++)
      $sayilar[]=rand(1,100); // üretilen sayı diziye ekleniyor.
}
 
function yaz(){
   global $sayilar;
   foreach($sayilar as $indis=>$deger)
      echo $indis+1,") ",$deger,"<br>";
}
 
uret();
yaz();
 
echo "<hr>";
 
uret(); // mevcut değerlere ekleme yapıyor
yaz();
?>
Örneğin ekran çıktısında çizginin üstündeki değerlerin çizginin altında da olduğuna dikkat ediniz. Bu da mevcut değerlere ekleme yapıldığını gösternektedir. Çünkü $sayilar dizisi global olarak fonksiyonlarda kullanılmıştır. Yani her iki fonksiyon da aynı dizi üzerinde değişiklik yapmaktadır.

Statik (static) Değişkenli Fonksiyonlar

Bir fonksiyonun çalışması bittiğinde içerisinde tanımlı olan değişkenler yok edilir yani ölürler. Fonksiyonun bir sonraki kullanımında tanımlı olan değişkenlerin eski değerleri kaybolmuş olur. Eğer fonksiyonun ikinci kez yada daha sonraki kullanımlarında içerisindeki değişkenlerin eski değerlerinin kaybolmasını istemiyorsanız o değişkenleri statik (static) olarak tanımlamanız gerekmektedir. Bu sayede değişkenlerin eski değerlerine ulaşabilirsiniz. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
function say(){
   $sayac=0;
   $sayac++;
   return $sayac;
}
 
echo "Sayaç=",say(); // ekrana Sayaç=1 yazar
echo "<br>";
echo "Sayaç=",say(); // ekrana yine Sayaç=1 yazar
echo "<br>";
echo "Sayaç=",say(); // ekrana yine Sayaç=1 yazar
?>
Aynı örneği statik değişken kullanarak yapalım.

Kod:
<?php
function say(){
   static $sayac=0;
   $sayac++;
   return $sayac;
}
 
echo "Sayaç=",say(); // ekrana Sayaç=1 yazar
echo "<br>";
echo "Sayaç=",say(); // ekrana Sayaç=2 yazar
echo "<br>";
echo "Sayaç=",say(); // ekrana Sayaç=3 yazar
echo "<br>";
?>
Görüldüğü gibi fonksiyon çağırıldığında $sayac değişkeninin eski değeri kaybolmayarak tekrar tekrar kullanılıyor.



Örnek: Çağırıldığında diziye, dizide olmayan 1 ile 100 arasındaki bir sayıyı ekleyen fonksiyonu tanımlayalım.

Kod:
<?php
function yaz($dizi){
   foreach($dizi as $deger)
      echo $deger," ";
}
 
function ekle(){
   static $sayilar=array();
   $varmi=true; // döngüye girmek için kullandık
   while($varmi==true){
      $varmi=false;
      $sayi=rand(1,100);
      foreach($sayilar as $deger)
         if ($sayi==$deger)
            $varmi=true;
   }
   $sayilar[]=$sayi;
   return $sayilar;
}
 
// ekle() fonksiyonu ile diziye bir sayı ekleniyor ve dönen dizi yaz() fonksiyonuna veriliyor
// her defasında diziye dizide olmayan bir sayı eklendiğine dikkat ediniz
// dizi static olduğundan eski değerleri korunuyor
yaz(ekle());
echo "<hr>";
 
yaz(ekle());
echo "<hr>";
 
yaz(ekle());
echo "<hr>";
 
yaz(ekle());
echo "<hr>";
 
yaz(ekle());
echo "<hr>";
 
yaz(ekle());
echo "<hr>";
?>


Örnek: Aldığı metni $mesaj değişkeninin eski değerine ekleyen fonksiyonu tanımlayalım.

Kod:
<?php
function hata($metin){
   static $mesaj="<b><u>Oluşan Hatalar:</u></b><br>";
   $mesaj.=$metin."<br>";
   return $mesaj;
}
 
$tam_metin=hata("Veritabanı bağlantısı yapılamadı!");
$tam_metin=hata("Tabloda ilgili kayıtlara ulaşılamadı!");
$tam_metin=hata("Listeleme yapılamadı!");
// tüm metinler $mesaj değişkenine eklendi
echo $tam_metin;
?>


Örnek: Aldığı dizinin değerlerini $diziler adındaki diziye ekleyen fonksiyonu tanımlayalım.

Kod:
<?php
function yaz($dizi){
   foreach($dizi as $deger)
      echo $deger," ";
}
 
function ekle($dizi){
   static $diziler=array();
   foreach($dizi as $deger)
      $diziler[]=$deger;
   return $diziler;
}
 
$dizi1=array(5,4,9);
$dizi2=array(1,3,11,14);
$dizi3=array(0,6,7,2,17);
 
$tumu=ekle($dizi1);
yaz($tumu);
echo "<hr>";
 
$tumu=ekle($dizi2);
yaz($tumu);
echo "<hr>";
 
$tumu=ekle($dizi3);
yaz($tumu);
echo "<hr>";
?>
Örneklerimizin amacı kullanımı sizlere öğretmektir. İhtiyaç duyduğunuz yerlerde bunlar aklımızda olursa çözüme daha kolay ulaşabiliriz.

PHP'de Kullanılan Hazır Fonksiyonlar

PHP'de önceden tanımlanmış onlarca hazır fonksiyon vardır. Bir işi yaparken çoğu zaman bu hazır fonksiyonları kullanırız. Hatta kendi tanımladığımız fonksiyonların içinde dahi bunları kullanırız. Bu hazır fonksiyonlar faklı başlıklar altında toplanmaktadır. Bunların başlıcaları şunlardır:

  • Dizi fonksiyonları
  • Matematiksel fonksiyonlar
  • String fonksiyonları
  • Zaman fonksiyonları
  • Veritabanı fonksiyonları
  • Dosya ve dizin fonksiyonları
  • XML fonksiyonları
Daha sayamadığımız bir çok başlık altında onlarca hazır fonksiyon mevcuttur.

Sitemizde bu başlıklar altında en çok kullanılan fonksiyonları ve bunlarla ilgili örneklerini anlatmaya çalışacağız. Bunlar şunlardır:

1) Dizi Fonksiyonları

  • count()
  • in_array()
  • array_search()
  • sort()
  • rsort()
  • asort()
  • arsort()
  • array_merge()
  • array_keys()
  • array_push()
2) Matematiksel Fonksiyonlar

  • pow()
  • sqrt()
  • abs()
  • base_convert()
  • fmod()
  • round()
  • floor()
  • ceil()
  • rand()
  • deg2rad()
  • sin()
  • cos()
  • tan()
  • pi()
  • exp()
3) String Fonksiyonları

  • strlen()
  • chr()
  • explode()
  • implode()
  • str_split()
  • ltrim()
  • rtrim()
  • trim()
  • substr()
  • strtolower()
  • strtoupper()
  • ucfirst()
  • ucwords()
  • str_replace()
  • nl2br()
  • md5()
  • sha1()
4) Zaman Fonksiyonları

  • time()
  • mktime()
  • getdate()
  • date()
5) Veritabanı Fonksiyonları

  • mysql_connect()
  • mysql_select_db()
  • mysql_query()
  • mysql_error()
  • mysql_free_result()
  • mysql_close()
  • mysql_fetch_array()
  • mysql_fetch_row()
  • mysql_fetch_object()
  • mysql_affected_rows()
  • mysql_num_fields()
  • mysql_field_name()
  • mysql_num_rows()
6) Dosya ve Dizin Fonksiyonları

  • file_exists()
  • basename()
  • is_file()
  • is_dir()
  • filesize()
  • filetype()
  • touch()
  • is_readable()
  • is_writable()
  • unlink()
  • fopen()
  • flock()
  • fclose()
  • fgets()
  • fgetc()
  • fwrite()
  • fputs()
  • mkdir()
  • rmdir()
  • opendir()
  • readdir()
  • scandir()
  • closedir()
İlk aşamada yukarıda listelediğimiz fonksiyonları anlatmaya çalışacağız. Unutmayın ki bunlar başlıklar altından seçilmiş olan bazı fonksiyonlardır. Bunların dışında adını yazmadığımız daha bir çok fonksiyon vardır.

Dizi Fonksiyonları

  • count()
  • in_array()
  • array_search()
  • sort()
  • rsort()
  • asort()
  • arsort()
  • array_merge()
  • array_keys()
  • array_push()
1) count($dizi)

Dizinin eleman sayısını verir. Bu fonksiyondan dönen değeri başka bir fonksiyona yada değişkene atamak gerekir. Aşağıdaki örneği inceleyiniz.

Kod:
<?php
$takim=array("Esra","Gülizar","Büşra","Cangül","Ebru","Seda");
echo "Takımdaki kişi sayısı: ",count($takim);
// ekrana Takımdaki kişi sayısı: 6 yazar
?>


Örnek: Dizideki sayıların ortalamasını bulalım.

Kod:
<?php
$sayilar=array(3,12,17,4,24);
$toplam=0;
for ($i=0;$i<=count($sayilar)-1;$i++)
   $toplam+=$sayilar[$i];
$ortalama=$toplam/count($sayilar);
echo "Ortalama=",$ortalama; // Ortalama=12
?>


2) in_array($deger, $dizi)

Bir değerin dizide olup olmadığını bulur. Varsa true, yoksa false değerini döndürür.

Kod:
<?php
$guzergah=array("İstanbul","Kocaeli","Sakarya","Düzce","Bolu","Ankara");
$varmi=in_array("Bolu",$guzergah);
if($varmi)
   echo "Ankara'ya giderken Bolu'dan geçilir.";
else
   echo "Ankara istikametinde Bolu yoktur.";
?>


Örnek: 1 ile 20 arasında birbirinden farklı rastgele 5 sayıdan oluşan bir dizi üretelim.

Kod:
<?php
$sayilar=array();
 
for($i=1;$i<=5;$i++){
   do{
      $sayi=rand(1,20);
   }while(in_array($sayi,$sayilar)==true);
   $sayilar[]=$sayi;
}
 
foreach($sayilar as $deger)
   echo $deger." ";
?>


3) array_search($deger, $dizi)

Belirtilen değeri dizide arar. Bulursa değerin indisini gönderir. Yoksa false döner.

Kod:
<?php
$kadro=array("Patron"=>"Ali","Müdür"=>"Emin","Müd. Yrd."=>"Kaan","Hizmetli"=>"Emre");
$adi="Emin";
$varmi=array_search($adi,$kadro);
if($varmi)
   echo "Adı: ".$adi."<br>Konumu: ".$varmi;
else
   echo $adi." kadroda yoktur";
?>


4) sort($dizi)

Verilen diziyi sıralar. İndisler sıralanmayacağından sıralama sonucu, indislere karşılık gelen degerler değişir.

Kod:
<?php
$meyveler=array("elma","ayva","portakal","mandalina","muz");
foreach($meyveler as $indis=>$deger)
   echo $indis."=>".$deger."<br>";
 
echo "<hr>";
 
sort($meyveler);
foreach($meyveler as $indis=>$deger)
   echo $indis."=>".$deger."<br>";
?>


Örnek: Sayı bulunan bir diziyi sıralayalım.

Kod:
<?php
$sayilar=array(34,65,12,45,124,656,2,3446,3);
foreach($sayilar as $indis=>$deger)
   echo $indis."=>".$deger."<br>";
 
echo "<hr>";
 
sort($sayilar);
foreach($sayilar as $indis=>$deger)
   echo $indis."=>".$deger."<br>";
?>


5) rsort($dizi)

Diziyi tersten (reverse) sıralamak için kullanılır. sort() fonksiyonu diziyi A..Z şeklinde sıralarken, rsort() Z..A şeklinde sıralar. Yine burada da indisler sıralanmayacağında indislere karşılık gelen değerler değişecektir.

Kod:
<?php
$meyveler=array("elma","ayva","portakal","mandalina","muz");
print_r($meyveler); // print_r dizileri indisleriyle beraber ekrana yazar.
echo "<hr>";
 
rsort($meyveler);
print_r($meyveler);
?>
Örnek:

Kod:
<?php
$sayilar=array(34,65,12,45,124,656,2,3446,3);
print_r($sayilar); // print_r dizileri indisleriyle beraber ekrana yazar.
 
echo "<hr>";
 
rsort($sayilar);
print_r($sayilar);
?>


6) asort($dizi)

Dizideki değerleri artan bir şekilde sıralar. Sıralama sonucunda orijinal indisler korunur. Yani sıralamadan önceki değerlerin indisleri ile sıralamadan sonraki değerlerin indisleri aynı olur. Değerlerle beraber indisler de yer değiştirir. Unutmayın ki sıralama değere göre yapılır.

Kod:
<?php
$hayvanat=array("deve","köpek","ceylan","aslan","zebra");
print_r($hayvanat); // sıralamadan önceki indislere dikkat ediniz.
// [0]=>deve [1]=>köpek [2]=>ceylan [3]=>aslan [4]=>zebra
 
echo "<hr>";
asort($hayvanat);
print_r($hayvanat); // sıralamadan sonraki indislere dikkat!
// [3]=>aslan [2]=>ceylan [0]=>deve [1]=>köpek [4]=>zebra
?>


Örnek: Öğrenci numaralarına göre verilen notları sıralayalım.

Kod:
<?php
$geometri=array(165=>45,850=>32,141=>74,295=>95,208=>51,302=>17);
print_r($geometri);
 
echo "<hr>";
asort($geometri);
print_r($geometri);
// [302]=>17 [850]=>32 [165]=>45 [208]=>51 [141]=>74 [295]=>95
?>
Bu örnekte öğrencilerin notları küçükten büyüğe doğru sıralanırken indis olarak kullanılan öğrenci numaraları da aynı değeri işaret ederek notların karışması önlenmiş oluyor.



7) arsort($dizi)

Bu fonksiyon dizi değerlerini azalan sıralamaktadır. Sıralama sonucunda asort() fonksiyonunda olduğu gibi orijinal indisler korunmaktadır. Sıralamdan önceki indislerin işaret ettiği değerler ile sıralamadan sonradaki işarete ettiği değerler aynıdır. Yani değerlerle beraber indisler de yer değiştirir.


Kod:
<?php
$secenekler=array("a"=>"RAM","b"=>"USB Disk","c"=>"Harddisk","d"=>"L1 Cache");
arsort($secenekler);
print_r($secenekler);
// [b]=>USB Disk [a]=>RAM [d]=>L1 Cache [c]=>Harddisk
// sıralama sonrası değerlerin azalan sıralandığına dikkat ediniz.
// Aynı zamanda indislerin korunduğuna da dikkat ediniz.
?>


8) array_merge($dizi1,$dizi2,$dizi3,...)

İki veya daha fazla diziyi birleştirerek tek bir dizi oluşturur. Bu fonksiyondan geriye birleştirilmiş bir dizi döner. Dolayısıyla dönen değeri bir başka değişkene atamamız gerekmetedir. Aşağıdaki örneği inceleyiniz.

Örneğimizde farklı sınıflardan seçilen öğrenciler ile oluşturulan bir basketbol takımının öğrencilerini saklayan bir dizi oluşturmaya çalışacağız.

Kod:
<?php
$bilisim10a=array("emre","kaan","hüseyin");
$bilisim10b=array("hasan","mehmet");
$anadolubilisim=array("can","mert","raşit");
$basketboltakimi=array_merge($bilisim10a,$bilisim10b,$anadolubilisim);
 
echo "Okulumuzun Basketbol Takımı<hr>";
foreach($basketboltakimi as $indis=>$deger)
   echo $indis+1,"-",$deger,"<br>";
?>


Örnek: Rasgele üretilmiş birbirinden faklı sayılardan oluşan 3 faklı diziyi tek bir dizide birleştirelim. Bunları üç farklı başlık altında seçilmiş olan farklı sorular olduğunu düşünebilirsiniz. Bu soruları birleştirerek bir sınav hazırlandığını da düşünebilirsiniz.

Kod:
<?php
function sec($min,$mak,$adet){
   $secim=array();
   for ($i=1;$i<=$adet;$i++){
      while(in_array($sayi=rand($min,$mak),$secim))
         $sayi=rand($min,$mak);
      $secim[]=$sayi;
   }
   return $secim;
}
 
function yaz($dizi,$baslik){
   echo $baslik,": ";
   foreach($dizi as $deger)
      echo $deger," ";
   echo "<br>";
}
 
$mat=sec(1,100,15);
$geo=sec(101,200,5);
$tur=sec(201,300,20);
 
yaz($mat,"Matematik");
yaz($geo,"Geometri");
yaz($tur,"Türkçe");
 
echo "<hr>";
$sinav=array_merge($mat,$geo,$tur);
sort($sinav);
yaz($sinav,"Sınavda soruları");
?>


9) array_keys($dizi)

Dizide kullanılan indisleri bir dizi olarak gönderir. Başka bir ifadeyle dizideki indisleri kullanarak bir dizi oluşturur ve gönderir.

Örneğimizde Takıma seçilen öğrencilerin numaralarını alıp ekrana yazalım.

Kod:
<?php
$takim=array(165=>"Can",84=>"Onur",98=>"Aziz",174=>"Şaban",61=>"Harun");
$ogrenciler=array_keys($takim); // dizinin indislerinden bir dizi oluşturuluyor
 
echo "Takıma seçilen öğrencilerin numaraları: ";
foreach($ogrenciler as $deger)
   echo $deger," ";
?>


10) array_push($dizi,$deger1,$deger2,$deger3...)

Belirtilen dizinin sonuna bir veya daha fazla değer eklemek için kullanılır. Örneğimizde yolcu listesine 3 kişi daha ekleyelim.

Kod:
<?php
$yolcu_listesi=array("Elif","Sena","Ufuk","Sercan","Merve");
echo "<u>Eski Yolcu Listesi</u>:<br>";
foreach($yolcu_listesi as $deger)
   echo $deger,"<br>";
 
echo "<hr>";
array_push($yolcu_listesi,"Serkan","Duygu","Haşim");
echo "<u>Yeni Yolcu Listesi</u>:<br>";
foreach($yolcu_listesi as $deger)
   echo $deger,"<br>";
?>

Matematiksel Fonksiyonlar

  • pow()
  • sqrt()
  • abs()
  • base_convert()
  • fmod()
  • round()
  • floor()
  • ceil()
  • rand()
  • deg2rad()
  • sin()
  • cos()
  • tan()
  • pi()
  • exp()


1) pow($x,$y)

Üslü sayıları hesaplamak için kullanılır. Burada $x üzeri $y işleminin sonucunu verir. Bu fonksiyondan dönen değer bir başka değişkene atanmalı yada kullanılmak üzere birbaşka fonksiyona verilmelidir.

Kod:
<?php
$x=3;
$y=4;
$sonuc=pow($x,$y);
echo "$x<sup>$y</sup>=$sonuc<br>";
 
echo "3<sup>2</sup>=",pow(3,2),"<br>";
echo "6<sup>2</sup>=",pow(6,2),"<br>";
echo "4<sup>3</sup>=",pow(4,3),"<br>";
echo "5<sup>4</sup>=",pow(5,4),"<br>";
echo "81<sup>0.5</sup>=",pow(81,0.5),"<br>";
echo "8<sup>4.5</sup>=",pow(8,4.5),"<br>";
?>


2) sqrt($x)

Belirtilen $x sayının karekökünü gönderir. Aynı işlemi yukarıdaki pow() fonksiyonuna üs olarak 0.5 vererek de yapabilirsiniz. Bilindiği üzere köklü sayılar aslında üssü 1/2 yani 0.5 olan sayılardır. Aşağıdaki örnekleri inceleyiniz.

Kod:
<?php
$x=25;
$sonuc=sqrt($x);
echo "$x sayısının karekökü=$sonuc <br>";
 
echo "64'ün karekökü=",sqrt(64),"<br>";
echo "81'in karekökü=",sqrt(81),"<br>";
echo "144'ün karekökü=",sqrt(144),"<br>";
echo "16'nın karekökü=",sqrt(16),"<br>";
echo "2'nin karekökü=",sqrt(2),"<br>";
?>


3) abs($x)

Verilen $x sayının mutlak değerini verir. Bilindiği üzere mutlak değer, sayının sayı ekseninde sıfıra olan uzaklığıdır. Uzaklık negatif olamayacağından mutlak değerin sonucu her zaman verilen sayının pozitif olanıdır.

Kod:
<?php
$x=-5;
$y=5;
echo "$x sayısının mutlak değeri |$x|=",abs($x),"<br>";
echo "$y sayısının mutlak değeri |$y|=",abs($y),"<br>";
echo "|$x-$y|=",abs($x-$y),"<br>";
 
echo "|-3|=",abs(-3),"<br>";
echo "|12|=",abs(12),"<br>";
echo "|-6.1|=",abs(-6.1),"<br>";
echo "|12.4|=",abs(12.4),"<br>";
echo "|22|=",abs(22),"<br>";
?>


4) base_convert($x,$taban1,$taban2)

Verilen $x sayısını belirtilen taban1 sayı sisteminden yine belirtilen taban2 sayı sistemine dönüştürür. Burada verilen sayının taban1 sisteminde olmasına dikkat ediniz. Aşağıdaki örnekleri inceleyiniz.

Kod:
<?php
echo "Onluk sistemdeki 27 sayısının ikilik sistemdeki karşılığı ",base_convert(27,10,2)," 'dir.<br>";
echo "(27)<sub>10</sub>=(",base_convert(27,10,2),")<sub>2</sub><br>";
echo "(101101)<sub>2</sub>=(",base_convert(101101,2,10),")<sub>10</sub><br>";
echo "(425)<sub>8</sub>=(",base_convert(425,8,2),")<sub>2</sub><br>";
echo "(8a4b)<sub>16</sub>=(",base_convert('8a4b',16,10),")<sub>10</sub><br>";
echo "(A37334)<sub>16</sub>=(",base_convert('A37334',16,2),")<sub>2</sub><br>";
echo "(10101110011)<sub>2</sub>=(",base_convert(10101110011,2,8),")<sub>8</sub><br>";
echo "(36213)<sub>4</sub>=(",base_convert(36213,4,10),")<sub>10</sub><br>";
?>


5) fmod($x,$y)

Verilen $x sayısının $y sayısına bölümünden kalanı vermektedir. % operatörü ile aynı işlevi görmektedir. Örneğin 15 sayısının 4'e bölümünden kalan 3'dür.

Kod:
<?php
$x=15;
$y=4;
$kalan=fmod($x,$y);
echo "$x sayısının $y sayısına bölümünden kalan = $kalan <br>";
echo "$x%$y=",$x%$y,"<br>";
echo "54%8=",fmod(54,8),"<br>";
echo "54%8=",54%8,"<br>";
 
echo "32%4=",fmod(32,4),"<br>";
echo "17%10=",fmod(17,10),"<br>";
echo "49%5=",fmod(49,5),"<br>";
echo "$x sayısı ",(fmod($x,2)==0)?"çifttir":"tektir","<br>";
echo "$y sayısı ",(fmod($y,2)==0)?"çifttir":"tektir","<br>";
?>


6) round($x,$ondalik)

Verilen $x sayısını belirtilen sayıda ondalik kalacak şekilde en yakın sayıya yuvarlar. Eğer ondalık belirtilmezse en yakın tam sayıya yuvarlar.

Kod:
<?php
$x=14.354;
$sonuc=round($x,1); // bir tane ondalık kalacak şekilde yuvarla
echo "Sonuc=$sonuc <br>";
 
$sonuc=round($x,2); // iki tane ondalık kalacak şekilde yuvarla
echo "Sonuc=$sonuc <br>";
 
$sonuc=round($x); // hiç ondalık kalmayacak şekilde yuvarla
echo "Sonuc=$sonuc <br>";
 
echo round(14.68),"<br>"; // ekrana 15 yazar
echo round(14.12),"<br>"; // ekrana 14 yazar
echo round(14.68,1),"<br>"; // ekrana 14.7 yazar
echo round(14.19,1),"<br>"; // ekrana 14.2 yazar
echo round(-14.6),"<br>"; // ekrana -15 yazar
?>


7) floor($x)

Verilen $x sayısını her zaman aşağıya tam sayı olacak şekilde yuvarlar. Dikkat ediniz: Bu fonksiyon yakın olan sayıya değil her zaman aşağıya yuvarlar. Yani kendisinden küçük en yakın tam sayıya yuvarlar.

Kod:
<?php
$x=14.354;
$sonuc=floor($x);
echo "Sonuc=$sonuc <br>";// ekrana Sonuc=14 yazar.
 
echo floor(14.68),"<br>"; // ekrana 14 yazar
echo floor(14.12),"<br>"; // ekrana 14 yazar
echo floor(14.99),"<br>"; // ekrana 14 yazar
echo floor(27.041),"<br>"; // ekrana 27 yazar
echo floor(-14.9),"<br>"; // ekrana -15 yazar
echo floor(-14.1),"<br>"; // ekrana -15 yazar
?>


8) ceil($x)

Verilen $x sayısını her zaman yukarıya tam sayı olacak şekilde yuvarlar. Başka bir ifadeyle kendisinden büyük en yakın tam sayıya yuvarlar.

Kod:
<?php
$x=14.354;
$sonuc=ceil($x);
echo "Sonuc=$sonuc <br>";// ekrana Sonuc=15 yazar.
 
echo ceil(14.68),"<br>"; // ekrana 15 yazar
echo ceil(14.12),"<br>"; // ekrana 15 yazar
echo ceil(14.99),"<br>"; // ekrana 15 yazar
echo ceil(27.041),"<br>"; // ekrana 28 yazar
echo ceil(-14.9),"<br>"; // ekrana -14 yazar
echo ceil(-14.1),"<br>"; // ekrana -14 yazar
?>


9) rand(min,mak)

Verilen aralıkta rastgele bir tamsayı üretir.

Kod:
<?php
$sayi=rand(1,10);
echo $sayi,"<br>";
echo rand(20,25),"<br>";
echo rand(160,200),"<br>";
 
echo "<hr>";
$sayilar=array();
$sayilar[]=rand(1,100);
$sayilar[]=rand(90,100);
$sayilar[]=rand(1,5);
$sayilar[]=rand(1000,10000);
$sayilar[]=rand(500,510);
foreach($sayilar as $deger)
   echo $deger," ";
?>


10) deg2rad($x)

Derece cinsinden verilen $x açısının radyan karşılığını verir. Aşağıda anlatılan sin(), cos() ve tan() gibi fonksiyonlar açıyı radyan cinsinden istemektedir.

Kod:
<?php
$x=30;
$radx=deg2rad($x);
echo "$x açısının radyan karşılığı = ",$radx,"<br>";
 
echo "90 derecenin radyan karşılığı = ",deg2rad(90),"<br>";
echo "60 derecenin radyan karşılığı = ",deg2rad(60),"<br>";
echo "180 derecenin radyan karşılığı = ",deg2rad(180),"<br>";
echo "360 derecenin radyan karşılığı = ",deg2rad(360),"<br>";
?>


11) sin($x), cos($x), tan($x)

Radyan cinsinden verilen $x açısının sırasıyla sinüs, kosinüs ve tanjant değerlerini verir. Dolayısıyla derece cinsindeki açıyı önce radyana çevirmek gerekmektedir.

Kod:
<?php
$x=30;
$radx=deg2rad($x); // derece radyana çevriliyor
echo "sin($x)=",sin($radx),"<br>";
echo "cos($x)=",cos($radx),"<br>";
echo "tan($x)=",tan($radx),"<br>";
 
$x=60;
$radx=deg2rad($x); // derece radyana çevriliyor
echo "sin($x)=",sin($radx),"<br>";
echo "cos($x)=",cos($radx),"<br>";
echo "tan($x)=",tan($radx),"<br>";
?>


12) pi()

Bu fonksiyon pi sayısını göndermektedir. Yaklaşık olarak 3 yada 3.14 olarak kullandığımız pi sayısının yerine, pi() fonksiyonunun gönderdiği değeri kullanmak daha doğru sonuç verecektir.

Kod:
<?php
$pi=pi();
echo $pi,"<br>";
echo pi(),"<br>";
 
echo "yarıçapı 3cm olan dairenin çevresi = ",2*pi()*3," cm'dir.<br>";
echo "yarıçapı 3cm olan dairenin alanı = ",pi()*pow(3,2)," cm<sup>2</sup> 'dir.<br>";
?>


13) exp($x)

Matematikte yaklaşık 2.718281828459 olarak bilinen e sayısının kuvvetlerini hesaplar ve gönderir. Buradaki $x sayısı e sayısının üssü olmaktadır.

Kod:
<?php
echo "e=",exp(1),"<br>";
echo "e<sup>2</sup>=",exp(2),"<br>";
echo "e<sup>3</sup>=",exp(3),"<br>";
echo "e<sup>4</sup>=",exp(4),"<br>";
?>

String Fonksiyonları

  • strlen()
  • chr()
  • explode()
  • implode()
  • str_split()
  • ltrim()
  • rtrim()
  • trim()
  • substr()
  • strtolower()
  • strtoupper()
  • ucfirst()
  • ucwords()
  • str_replace()
  • nl2br()
  • md5()
  • sha1()


1) strlen($metin)

Verilen metnin karakter sayısını yani uzunluğunu verir.

Kod:
<?php
$metin="İlmin bereketi güzel ameldir.";
$uzunluk=strlen($metin);
echo "$metin > cümlesinin uzunluğu = $uzunluk";
?>


2) chr($sayi)

Verilen ascii koda karşılık gelen karakteri verir. Bilindiği üzere klavye üzerindeki her karakterin 255'e kadar olan bir ascii kodu vardır.


Kod:
<?php
echo "Ascii kodu 65 olan karakter ",chr(65)," 'dır.<br>";
echo "<u>Aşağıdaki kelime ascii kodlar ile yazılmıştır.</u><br>";
echo chr(109),chr(101),chr(114),chr(104),chr(97),chr(98),chr(97),"<br>";
 
echo "<table border='1'>";
echo "<tr>";
echo "<th>Ascii Kodu</th>";
echo "<th>Karekter</th>";
echo "</tr>";
for ($i=0;$i<=255;$i++){
   echo "<tr>";
   echo "<td>",$i,"</th>";
   echo "<td>",chr($i)," &nbsp;</td>";
   echo "</tr>";
}
echo "</table>";
?>


3) explode($ayirici,$metin)

Verilen metni belirtilen ayırıcı karaktere göre parçalar ve bir dizi olarak gönderir. Örneğin bir cümledeki kelimeleri bir diziye aktaralım. Buradaki ayırıcımız boşluk karakteri olacaktır.

Kod:
<?php
$metin="Kişi bilmediğinin düşmanıdır.";
$dizi=explode(" ",$metin); // cümlemiz boşluklardan bölünecek
print_r($dizi); // her kelime dizide bir değer olacaktır
?>


Örnek:
Veritabanına 2010-04-25 şeklinde kaydedilen tarihi ekrana 25 Nisan 2010 şeklinde yazdıralım.

Kod:
<?php
$tarih="2010-04-25";
// - ile ayrılan her sayı diziye atanacak
$sayilar=explode("-",$tarih); // 0=>2010 1=>04 2=>25
$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
echo $sayilar[2]," ",$aylar[$sayilar[1]-1]," ",$sayilar[0];
?>


Örnek: Bir paragrafta kaç kelime ve kaç cümle olduğunu bulalım.

Kod:
<?php
$paragraf="Bir zamanlar, her şeyden sürekli şikayet eden, her gün hayatının 
ne kadar berbat olduğundan yakınan bir kız vardı. Hayat, ona göre çok kötüydü 
ve sürekli savaşmaktan, mücadele etmekten yorulmuştu. 
Genç kızın bu yakınmaları karşısında, mesleği aşçılık olan babası ona bir hayat 
dersi vermeye niyetlendi. Bir gün onu mutfağa götürdü. Üç ayrı cezveyi suyla 
doldurdu ve ateşin üzerine koydu. Cezvelerdeki sular kaynamaya başlayınca, 
bir cezveye bir patates, diğerine bir yumurta ve sonuncusuna da kahve 
çekirdeklerini koydu. Daha sonra kızına tek kelime etmeden, beklemeye başladı. 
Kızı da hiçbir şey anlamadığı bu faaliyeti seyrediyor ve sonunda karşılaşacağı 
şeyi görmeyi bekliyordu. Ama o kadar sabırsızdı ki, sızlanmaya ve daha ne kadar 
bekleyeceklerini sormaya başladı.";
 
$kelimeler=explode(" ",$paragraf);
$kelime_sayisi=count($kelimeler);
$cumleler=explode(".",$paragraf);
$cumle_sayisi=count($cumleler)-1;
 
echo "<hr>";
echo "$paragraf <br><br>";
echo "Yukarıdaki paragrafta $kelime_sayisi kelime ve $cumle_sayisi cümle vardır.";
 
echo "<hr>";
foreach($kelimeler as $indis=>$deger)
   echo $indis+1,"=>",$deger,"<br>";
 
echo "<hr>";
foreach($cumleler as $indis=>$deger)
   echo $indis+1,"=>",$deger,"<br>";
?>


4) implode($ayirici,$dizi)

Bu fonksiyon explode() fonksiyonunun aksine bir dizideki değerleri belirtilen ayırıcıyla birleştirerek biraraya getirir. Örneğimizde bir cümleyi oluşturan kelimelerin bulunduğu diziyi birleştirip cümlemizi kuralım.

Kod:
<?php
$kelimeler=array("Sükut","yalan","söylemekten","ve","başkalarını","çekiştirmekten","herhalde","evladır");
$cumle=implode(" ",$kelimeler);
echo $cumle,"!";
?>


Örnek: Ayları arasına – koyarak birleştirip ekrana yazdıralım.

Kod:
<?php
$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
$metin=implode("-",$aylar);
echo $metin;
?>


5) str_split($metin,$sayi)

Verilen metni verilen sayı kadar karakter gruplarına bölerek bir diziye dönüştürür. Eğer sayı belirtilmezse, metni harf harf bölerek bir diziye atar.

Kod:
<?php
$metin="Fazlı BÜNYAMİN";
$harfler=str_split($metin); // sayı belirtilmediğinden harf harf böler
foreach($harfler as $harf)
   echo "<h1>",$harf,"</h1>";
?>


Örnek: Verilen örnek bir iban kodunu dörtlü gruplara bölerek ekrana yazdıralım.

Kod:
<?php
$iban="TR680004600000222990022302"; // http://tr.wikipedia.org/wiki/IBAN#.C3.96rnek_IBAN
$grup=str_split($iban,4);
foreach($grup as $deger)
   echo $deger," ";
?>


6) ltrim($metin), rtrim($metin), trim($metin)

Verilen metnin sırasıyla solundaki(left-ltrim), sağındaki(right-rtrim) ve her iki tarafındaki(trim) gereksiz boşlukları temizler. Örneğin bir formdan gelen metnin soluna yada sağına gereksiz boşluklar bırakılmışsa bunların temizlenmesi gerekmektedir. Aslında bu tür basit işlemler için web sunucu meşgul edilmek istenmez. Bundan dolayı bu tür kontroller için istemci taraflı çalışan javascript kodları kullanılır.

Kod:
<?php
$metin1="        Zonguldak";
$metin2="Zonguldak      ";
$metin3="       Zonguldak          ";
echo $metin1,"<br>\n";
echo $metin2,"<br>\n";
echo $metin3,"<br>\n";
 
echo "<hr>\n"; // görünürde bir faklılık yok gibi olsa da kaynak koda dikkat ediniz.
 
$metin1=ltrim($metin1); // solundaki boşluklar temizlendi.
$metin2=rtrim($metin2); // sağındaki boşluklar temizlendi.
$metin3=trim($metin3); // her iki tarafındaki boşluklar temizlendi.
 
echo $metin1,"<br>\n";
echo $metin2,"<br>\n";
echo $metin3,"<br>\n";
?>

Verdiğimiz örnekte boşlukları temizlemeden önceki ve sonraki ekran çıktıları aynı görünebilir. Ancak kaynak koddaki farklılıklara dikkat ediniz. Örneğin bir kullanıcı adının başına yada sonuna boşluk bırakılarak yazılması üye girişinde hataya sebep olacaktır. Çünkü kontroller görünüre göre değil esas bilgiye göre yapılır. Bundan dolayı gereksiz boşlukların temizlenmesinde fayda vardır.



7) substr($metin,$baslangic,$uzunluk)

Bir metnin belirtilen başlangıç konumundan itibaren istenilen uzunluktaki bir parçasını gönderir. Yani metinlerin belirli bir bölümünü almak için kullanılır.

Kod:
<?php
$metin="Fırsat karınca yürüyüşü ile gelir, yıldırım hızı ile gider.";
$parca1=substr($metin,7,7); // karınca
$parca2=substr($metin,24,3); // ile
$parca3=substr($metin,53,6); // gider.
echo $parca1," ",$parca2," ",$parca3;
?>
Unutmayın ilk karakterin konumu sıfır(0)'dır.



Örnek: Bir dosyanın uzantısını bulalım.

Kod:
<?php
$dosyaadi="e-kitap.pdf";
$uzunluk=strlen($dosyaadi);
$uzanti=substr($dosyaadi,$uzunluk-3,3);
echo $uzanti;
?>


8) strtolower($metin), strtoupper($metin)

Verilen metni sırasıyla küçük harfe ve büyükharfe dönüştürür.

Kod:
<?php
$metin="PARAYI VEREN DÜDÜĞÜ ÇALAR!";
echo strtolower($metin),"<br>"; // küçük harfe dönüştürülüyor
 
$metin="Pilavdan dönenin kaşığı kırılsın!";
echo strtoupper($metin);// büyük harfe dönüştürülüyor
?>


Bu örnekte bazı türkçe karakterlerin düzgün görüntülenmediğini farketmişsinizdir. Bu sorunu çözmek için mb_strtolower() ve mb_strtoupper() fonksiyonlarını kullanabilirsiniz. Bu iki fonksiyona türkçenin karakter kodu verilerek düzgün sonuçlar alınabilir.

Kod:
<?php
$metin="PARAYI VEREN DÜDÜĞÜ ÇALAR!";
echo mb_strtolower($metin,"iso-8859-9"),"<br>"; // küçük harfe dönüştürülüyor
 
$metin="Pilavdan dönenin kaşığı kırılsın!";
echo mb_strtoupper($metin,"iso-8859-9");// büyük harfe dönüştürülüyor
?>


9) ucfirst($metin), ucwords($metin)

Bu iki fonksiyon sırasıyla verilen metnin ilk karakterini (ucfirst) ve metindeki her kelimenin ilk karakterini(ucwords) büyük harfe dönüştürür.

Kod:
<?php
$metin="parayı veren düdüğü çalar!";
echo ucfirst($metin),"<br>"; // ilk karakter olan p, P yapılıyor.
 
$metin="Pilavdan dönenin kaşığı kırılsın!";
echo ucwords($metin);// her kelimenin ilk karekteri büyük harfe dönüştürülüyor
?>


10) str_replace($kaynak,$hedef,$metin)

Verilen metindeki kaynak karakterlerin yerine hedef karakterileri koyarak değiştirme yapar. Bu fonksiyon küçük/büyük harf duyarlıdır.

Kod:
<?php
$metin="PC üzerindeki RAM, olmazsa olmaz bileşenlerdendir.";
$metin=str_replace("PC","Bilgisayar",$metin); // PC yerine Bilgisayar yazılıyor
$metin=str_replace("RAM","bellek",$metin); // RAM yerine bellek yazılıyor
 
echo $metin; // Bilgisayar üzerindeki bellek, olmazsa olmaz bileşenlerdendir.
?>


Örnek: Bu örneğimizde bir dizideki bir değeri başka bir değerle değiştirelim.

Kod:
<?php
$araclar=array("Kamyon","Otobüs","Araba","Kamyonet","Araba");
$araclar=str_replace("Araba","Otomobil",$araclar);
print_r($araclar);
?>


Örnek: Sınav tarihlerinin yazılı bulunduğu metindeki ingilizce günleri ürkçe günlerle değiştirelim.

Kod:
<?php
$sinavlar="Birinci sınav: 26.04.2010 Monday, İkinci sınav: 14.05.2010 Friday, Üçüncü sınav: 09.06.2010 Wednesday";
$kaynak=array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
$hedef=array("Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar");
$sinavlar=str_replace($kaynak,$hedef,$sinavlar);
echo $sinavlar;
?>
Burada belirtilen metinde varsa Monday yerine Pazartesi, Tuesday yerine Salı, .... yazılacaktır. Aslında bu işlem ile birçok farklı kelime değiştirilmektedir. Aranan değerler bir dizi şeklinde, buna karşılık gelecek değerler de aynı sıralamada farklı bir dizide belirtilmiştir.



Örnek: Bir sınıftaki öğrencilerin aldığı notların yazı karşılıklarını yazdıralım. Öğrenci numaraları indis olsun.


Kod:
<?php
$bilisim10b=array(94=>4,184=>2,941=>5,641=>3,201=>2,745=>5);
print_r($bilisim10b);
 
echo "<br>";
$kaynak=array(0,1,2,3,4,5);
$hedef=array("Başarısız","Kalır","Geçer","Orta","İyi","Pekiyi");
$bilisim10b=str_replace($kaynak,$hedef,$bilisim10b);
print_r($bilisim10b);
?>
Bu kez üzerinde çalışılan bir metin değil bir dizidir.($bilisim10b)



11) nl2br($metin)

String ifadelerde kullanılan ve alt satıra geçmeyi sağlayan \n yerine kaynak kodda <br> yazmak için kullanılır.


Kod:
<?php
$mesaj="Hata oluştu!\nHata Kodu: 101\nHata sebeplerini ortadan kaldırıp tekrar deneyiniz.\n";
echo $mesaj;
 
echo "<hr>\n";
echo nl2br($mesaj);
?>
Sayfanın kaynak koduna bakınız. \n kaynak kodda bir alt satıra geçerken sayfada bir alt satıra geçmemektedir. nl2br() fonksiyonu ile \n yerine <br> yazılarak hem kaynak kodda hem de sayfada bir alt satıra geçilmektedir.



12) md5($metin), sha1($metin)

Sırasıyla aldığı metne karşılık gelen karmaşık md5 ve sha1 kodlarını verir. Genelde kaydedilecek şifreleri şifrelemek için kullanılır.

Kod:
<?php
$parola="muyo";
echo "Parola: $parola<br>";
echo "md5 kodu: ",md5($parola),"<br>";
echo "sha1 kodu: ",sha1($parola),"<br>";
 
if(md5($parola)=="b4e13754952fd48da1b830a615082dfd")
   echo "şifre doğru<br>";
else
   echo "Şifre yanlış<br>";
 
if(sha1($parola)=="0c368701bf596cc80a9815ec7c9774be43a0e573")
   echo "şifre doğru<br>";
else
   echo "Şifre yanlış<br>";
?>

Zaman Fonksiyonları

  • time()
  • mktime()
  • getdate()
  • date()
PHP zaman bilgisi bildiğimiz gibi değil unix epoch biçiminde kullanılmaktadır. Unix epoch biçimi tam olarak 1 Ocak 1970 00:00:00 anından bu zamana kadar geçen zamanın saniye cinsinden ifadesidir.

1) time()

Şuanki zaman bilgisini (tarih, saat, dakika ve saniye) unix epoch biçiminde gönderir. Aşağıda, şimdiki zamanın bilgisi ekrana yazdırılmaktadır. Sayfayı yenilediğinizde sayının saniyede bir arttığını göreceksiniz. Buradan da şimdiki zamanın belirli bir başlangıç anından bu yana geçen sürenin saniye cinsinden ifadesi olduğunu kolayca anlayabilirsiniz. time() fonksiyonu parametre almaz. Örneği inceleyiniz.

Kod:
<?php
$simdi=time();
echo "Şimdiki zaman: ",$simdi;
?>


Örnek: Yarının zaman bilgisini ekrana yazdıralım.

Kod:
<?php
$simdi=time();
$yarin=$simdi+24*60*60;
echo "Yarın: ",$yarin;
?>
Şimdiki zamana saniye cinsinden değer ekleyerek yada çıkararak zamanda ileri yada geri gidebilirsiniz. Yukarıdaki örnekte tam 24 saat sonrasına gidilmiştir. Bu da yarın olmaktadır. Şimdi de 24 saat öncesine yani düne gidelim.

Kod:
<?php
$simdi=time();
$dun=$simdi-24*60*60;
echo "Dün: ",$dun;
?>


Örnek: Tam bir hafta sonrasına gidelim.

Kod:
<?php
$simdi=time();
$gelecek_hafta=$simdi+7*24*60*60;
echo "Gelecek Hafta : ",$gelecek_hafta;
?>


2) mktime($saat, $dakika, $saniye, $ay, $gun, $yil)

Tam olarak belirtilen zamana gitmeyi sağlar. Başka bir ifadeyle belirtilen zamanı unix epoch biçimine dönüştürür. Eğer zaman belirtilmezse şimdiki zaman bilgisini unix epoch biçiminde verir.

Buraki sıralamaya dikkat ediniz. (saat, dakika, saniye, ay, gün, yıl)

Örnek: Şimdiki zamanı hem time() ile hem de mktime() ile ekrana yazdıralım.

Kod:
<?php
$simdi1=time();
$simdi2=mktime();
 
echo "Şimdi 1: ",$simdi1,"<br>";
echo "Şimdi 2: ",$simdi2,"<br>";
?>


Örnek: 18 Haziran 1983 tarihinde doğan birinin doğum gününü ekrana unix epoch biçiminde yazdıralım.

Kod:
<?php
// dogum gününün ilk anları. Saat,dakika ve saniye sıfırdır.
$dogum=mktime(0,0,0,6,18,1983);
echo "Doğum tarihiniz : ",$dogum;
?>


Örnek: 18 Haziran 1983 tarihinde doğan birinin kaç gündür yaşadığını bulalım.

Kod:
<?php
$dogum=mktime(0,0,0,6,18,1983);
$simdi=time();
$fark=$simdi-$dogum; // yaşadığı zamanın saniye karşılığı
$gun=$fark/(24*60*60); // fark'ın kaç güne karşılık geldiği bulunuyor
$gun=floor($gun); // ondalıklı gün aşağıya yuvarlanıyor.
echo "Siz $gun gündür yaşamaktasınız.";
?>


Örnek: 1 ocak 2011 ile şimdiki zaman arasında kaç gün, kaç saat, kaç dakika ve kaç saniye olduğunu bulalım. Dikkat ediniz verilen tarih bu kodun çalışmasına göre geçmiş yada gelecek bir zaman olabilir.

Kod:
<?php
$simdi=time();
$zaman=mktime(0,0,0,1,1,2011);
$fark=abs($simdi-$zaman); // geçmiş zaman ihtimaline karşılık mutlak değeri alınıyor.
$gun=floor($fark/(24*60*60));
$saat=floor(($fark-$gun*24*60*60)/(60*60));
$dakika=floor(($fark-($gun*24*60*60+$saat*60*60))/60);
$saniye=$fark-($gun*24*60*60+$saat*60*60+$dakika*60);
 
echo "1 Ocak 2011 ile aramızda $gun gün $saat saat $dakika dakika $saniye saniye vardır.";
?>


3) getdate($zaman)

Unix epoch biçiminde verilen zamanın bilgisini bir dizi şeklinde gönderir. Zaman verilmezse şimdiki zaman bilgisini bir dizi olarak gönderir. Dönen dizinin indisleri ve değerleri şöyledir.

Dizi indisleri=>Değerleri

  • seconds => saniye
  • minutes => dakika
  • hours => saat
  • mday => ayın kaçıncı günü olduğu bilgisi (1,2,3, ... 31)
  • wday => haftanın kaçıncı günü olduğu bilgisi (Pazar: 0, P.Tesi: 1, ... C.tesi: 6 )
  • mon => ay (1,2,...12)
  • year => yıl (2001,2002,...)
  • yday => yılın kaçıncı günü olduğu bilgisi (1,2,3, ...365)
  • weekday => haftanın hangi günü olduğu bilgisi (Sunday, Monday, ... Saturday)
  • month => ay (January,February,...December)


Örnek: Şimdiki zamanın tüm bilgilerini getdate() ile ekrana yazdıralım.

Kod:
<?php
$simdi=getdate(); // dönen bir dizidir dikkat ediniz.
print_r($simdi);
echo "<hr>";
echo "Saniye: ",$simdi["seconds"],"<br>";
echo "Dakika: ",$simdi["minutes"],"<br>";
echo "Saat: ",$simdi["hours"],"<br>";
echo "Gün: ",$simdi["mday"],"<br>";
echo "Haftanın kaçıncı günü: ",$simdi["wday"],"<br>";
echo "Ay: ",$simdi["mon"],"<br>";
echo "Yıl: ",$simdi["year"],"<br>";
echo "Yılın kaçıncı günü: ",$simdi["yday"],"<br>";
echo "Haftanın hangi günü: ",$simdi["weekday"],"<br>";
echo "Yılın hangi ayı: ",$simdi["month"],"<br>";
?>
Not: EasyPHP kurulumunda zaman dilimi varsayılan olarak Paris şeklinde gelmektedir. Bundan dolayı zaman bilgisi ekranda yanlış görünebilir. Bunun için http://localhost/home adresini kullanarak açılan sayfanın altında bulunan Paris seçeneğini Istanbul olarak değiştirip yanındaki küçük ok ile onaylamalısınız. Haftanın ilk gün (0) Sunday'dir. Unutmayınız.



Örnek: Hangi gün doğduğumuzu ekrana yazdıralım.

Kod:
<?php
$dogum_gunu=mktime(0,0,0,6,18,1983);
$zaman=getdate($dogum_gunu); // unix epoch biçimindeki dogum gunumuzu verdik
echo "18 Haziran 1983 günü : ",$zaman["weekday"];
?>


Örnek: Bir sonraki yılbaşına kaç gün olduğunu bulalım.

Kod:
<?php
$simdi=getdate();
$sonraki_yil=$simdi["year"]+1;
$yilbasi=mktime(0,0,0,1,1,$sonraki_yil);
$gun=floor(($yilbasi-time())/(24*60*60));
echo "Yılbaşına $gun gün vardır.";
?>


Örnek: Şimdiki zaman göre getdate() ile dün ve yarının hangi günler olduğunu ekrana yazdıralım.

Kod:
<?php
$simdi=getdate();
$gun=$simdi["mday"];
$ay=$simdi["mon"];
$yil=$simdi["year"];
$dun=getdate(mktime(0,0,0,$ay,$gun-1,$yil));
$yarin=getdate(mktime(0,0,0,$ay,$gun+1,$yil));
echo "Dün : ",$dun["weekday"],"<br>Yarın : ",$yarin["weekday"];
?>


4) date($bicim, $zaman)

Unix epoch biçimindeki zaman bilgisini ekranda istenilen biçimde göstermek için kullanılır. Zaman belirtilmezse şimdiki zaman ile çalışır. Biçimlerde kullanılan parametreler şunlardır.

Parametre - İşlevi

  • a - 12 saat esasına dayanan Anglo-Sakson sistemlerinde öğleden önce ("am") veya öğleden sonra ("pm") işaretini sağlar.
  • A - Aynı işaretlerinin büyük harfle yazılmasını sağlar.
  • d - İki haneli gün sayısı, tek haneli günlerin önüne sıfır konur: "01"-"31"
  • D - Üç haneli gün adı kısaltması: "Sun","Mon", ..
  • F - Uzun ay adı: "January","February", ..
  • h - 12 saatlik sistemde saat: "01"-"12"
  • H - 24 saatlik sistemde saat: "00"-"23"
  • g - 12 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: "1"-"12"
  • G - 24 saatlik sistemde tek haneli saatlerin önüne sıfır konmadan saat: "0"-"23"
  • i - Dakika: "00-59"
  • j - Tek haneli sayıların önüne sıfır konmadan gün sayısı: "1"-"31"
  • l - (Küçük L harfi) Uzun gün adı: "Sunday", "Monday", ..
  • L - Artık yıl olup olmadığına ilişkin Boolean (doğru/yanlış) değişken. Artık yıl ise 1 değilse 0 döndürür.
  • m - Tek haneli sayıların önüne sıfır konarak ay sayısı: "01"-"12"
  • n - Tek haneli sayıların önüne sıfır konmadan ay sayısı: "1"-"12"
  • M - Kısaltılmış ay adı: "Jan","Feb", ..
  • s - Saniye: "00"-"59"
  • S - İngilizce "'nci" anlamında 2 karakter ek: "th","nd"
  • t - Belirtilen ayın toplam gün sayısı: "28"-"31"
  • w - Haftanın kaçıncı günü olduğu bilgisi: "0" Pazar, "6" Cumartesi
  • Y - Dört haneli yıl: "2000"
  • y - İki haneli yıl "02"
  • z - Yılın kaçıncı günü olduğu bilgisi: "0"-"365"


Örnek: Şimdiki tarihi ekranda 05/06/2010 şeklinde gösterelim.

Kod:
<?php
echo date("d/m/Y");
?>


Örnek: Yarını 26 April 2010 Monday biçiminde ekrana yazdıralım.

Kod:
<?php
echo date("d F Y l",time()+24*60*60);
?>
Örneğimizde şimdiki zamana saniye olarak bir gün eklenip date() fonksiyonuna verildi.



Örnek: 18.06.2010 tarihini ekrana 18 June 2010, Friday biçiminde yazdıralım.

Kod:
<?php
echo date("d F Y, l",mktime(0,0,0,6,18,2010));
?>


Örnek: Veritabanından 2010-04-26 biçiminde okunduğu kabul edilen tarihi ekrana 26 April 2010 Monday biçiminde yazdıralım.

Kod:
<?php
$tarih="2010-04-26";
$tarih=explode("-",$tarih); // - ile ayrılan sayılardan bir dizi oluşturuldu
$zaman=mktime(0,0,0,$tarih[1],$tarih[2],$tarih[0]); // tarih unix epoch biçimine çevriliyor
echo date("d F Y l",$zaman);
?>

Örnek: Tanımlı olan tarihi ekrana türkçe olarak 26 Nisan 2010 Pazartesi biçiminde yazdırmaya çalışalım.

Kod:
<?php
$tarih="2010-04-26";
$tarih=explode("-",$tarih); // - ile ayrılan sayılardan bir dizi oluşturuldu
$zaman=mktime(0,0,0,$tarih[1],$tarih[2],$tarih[0]); // tarih unix epoch biçimine çevriliyor
 
$tarih=date("d F Y l",$zaman);
 
 
$kaynak1=array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
$hedef1=array("Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar");
 
$kaynak2=array("January","February","March","April","May","June","July","August","September","October","November","December");
$hedef2=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
 
$tarih=str_replace($kaynak1,$hedef1,$tarih);
$tarih=str_replace($kaynak2,$hedef2,$tarih);
echo $tarih;
?>


Örnek: Sizlerle, tarihi türkçe olarak farklı bir şekilde gösteren php kodunu paylaşacağım. İsterseniz kodları araştırıp inceleyebilirsiniz.

Kod:
<?php
$tarih="2010-04-26";
@setlocale(LC_ALL, "turkish");
echo strftime("%d %B %Y, %A",strtotime("$tarih"));
?>

Kaynak : phpdefteri.com
 
Geri