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)," </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"; //görünürde bir faklılık yok gibi // olsa da kaynak koda dikkat ediniz. echo "<hr>n"; // solundaki boşluklar temizlendi. $metin1=ltrim($metin1); // sağındaki boşluklar temizlendi. $metin2=rtrim($metin2); // her iki tarafındaki boşluklar temizlendi. $metin3=trim($metin3); 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!"; // küçük harfe dönüştürülüyor echo strtolower($metin),"<br>"; $metin="Pilavdan dönenin kaşığı kırılsın!"; // büyük harfe dönüştürülüyor echo strtoupper($metin); ?>
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!"; // küçük harfe dönüştürülüyor echo mb_strtolower($metin,"iso-8859-9"),"<br>"; // büyük harfe dönüştürülüyor $metin="Pilavdan dönenin kaşığı kırılsın!"; echo mb_strtoupper($metin,"iso-8859-9"); ?>
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!"; // ilk karakter olan p, P yapılıyor. echo ucfirst($metin),"<br>"; $metin="Pilavdan dönenin kaşığı kırılsın!"; //her kelimenin ilk karekteri büyük harfe dönüştürülüyor echo ucwords($metin); ?>
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 //PC yerine Bilgisayar yazılıyor $metin="PC üzerindeki RAM, olmazsa olmaz bileşenlerdendir."; //RAM yerine bellek yazılıyor $metin=str_replace("PC","Bilgisayar",$metin); //Bilgisayar üzerindeki bellek, olmazsa olmaz bileşenlerdendir. $metin=str_replace("RAM","bellek",$metin); echo $metin; ?>
Ö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
yazmak için kullanılır.
<?php $mesaj="Hata oluştu!nHata Kodu: 101n Hata 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
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>"; ?>
Leave a Reply