Yazdır 25 Nisan 2010 Pazar (Hit: 37721)

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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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.

<?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>";
?> 

Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010