PHP dilinde, değişken dizgeleri ve stringler üzerinde işlem yapmak için kullanılan bir takım fonksiyonları vardır. Bu fonksiyonlar ile bir metni ya da dizgeyi belli düzene göre parçalamak, metin ya da dizge içerisinde değer aramak, uzunluğunu bulmak gibi işlemler yapabiliriz.
PHP dilinde kullanılan dizge fonksiyonları aşağıdaki gibidir;
Şimdi bu fonksiyonları örneklerle ele alalım.
Bu fonksiyonumuz parametre olarak aldığı herhangi bir türdeki dizgenin karakter uzunluğunu döndürür. Geriye integer türü değer döndürür.
Eğer parametre olarak bir sayı göderilirse, sayının kaç basamaklı olduğunu döndürür. Eğer string değer gönderilirse, boşluklar dahil kaç karakterden oluştuğunu döndürür.
Örnek:
1 2 3 4 5 6 7 8 9 |
$metin = "Merhaba Dünya"; $karakterSayisi = strlen($metin); echo $karakterSayisi; /* * Yukarıdaki kod ekrana "Merhaba Dünya" metninin * karakter sayısı olan 13 sayısını yazdırır */ |
Bu fonksiyonumuz ise bir metnin kaç kelimeden oluştuğunu döndürür. String tütü parametre alır ve geriye integer türü değer döndürür.
Örnek:
1 2 3 4 5 6 7 8 9 |
$metin = "Merhaba Dünya, Nasılsın"; $kelimeSayisi = str_word_count($metin); echo $kelimeSayisi; /* * Yukarıdaki kod ekrana "Merhaba Dünya, Nasılsın" metninin * kelime sayısı olan 3 değerini yazdırır */ |
Bu fonksiyonumuz ise parametre olarak dizgeyi tersine çevirerek yine string türü değer olarak geriye döndürür.
1 2 3 4 5 6 |
$metin = "Merhaba Dünya"; $yeniMetin = strrev($metin); echo $yeniMetin; //ekrana "aynüD abahreM" yazdırır echo strrev(1234); // Ekrana 4321 yazar |
Bu fonksiyonumuz ile bir metin içerisinde arama yapabiliriz. Arama sonucu olarak bulunan verinin ilk karakterinin metnin kaçıncı karakter sayısında olduğunu integer olarak geri döndürür.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$metin = "Merhaba Dünya"; $sonuc = strpos($metin, "Dünya"); echo $sonuc; // Ekrana 8 yazar /* * Yukarıdaki kodlarda $metin değişkeni içerisinde * strpos() fonksiyonu ile "Dünya" kelimesini aradık. * sonuç olarak fonksiyon bize "Dünya" kelimesinin * başlangıç karakterinin sayısı olan 8 değerini döndürdü. * Çünkü "Dünya" kelimesi metnin başlangıcından itibaren * 8 karakter sonrasında başlıyor */ |
Bu fonksiyonumuz ise 3 adet parametre alır. Bunlardan birincisi metin içerisinde değiştirilecek veri, ikincisi değiştirilecek verinin yerine yazılacak yeni veri, üçüncüsü ise üzerinde düzeltme yapılacak metindir.
Sözdizimi: str_replace(“değiştirilecek değer”, “yeni değer”,”düzenlenecek metin”);
Örnek:
1 2 3 4 5 6 7 8 |
$metin = "Merhaba Dünya"; // $metin adında değişken oluşturup "Merhaba Dünya" değerini atadık $yeniMetin = str_replace("Dünya", "Kod Defteri", $metin); // $metin değişkeni içerisindeki "Dünya" değerinin yerine "Kod Defteri" yaz echo $yeniMetin; // Ekrana "Merhaba Kod Defteri" yazar |
Bu fonksiyonumuz girilen bir metni belirli bir ayraca göre parçalayarak bir diziye aktarır. İki adet parametre alır, birinci parametre ayırma karakteri, ikinci parametre ise düzenlenecek metindir.
Sözdizimi: explode(“ayırma karakteri”, “düzenlenecek metin”);
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$serial = "12HDS-125GX-33QWE-ASDFG-12XYZ"; // $serial adında değişken oluşturup içerisine değer atadık // şimdi bu değeri "-" karakterini baz alarak ayırıp bir diziye atayacağız $serialArray = explode("-", $serial); // $serial değişkeni değerini "-" karakterlerini baz alarak ayıdık foreach($serialArray as $yazdir){ echo $yazdir."<br>"; } // foreach döngüsü ile $serialArray dizimizin elemanlarını ekrana yazdırdık /* * Ekran çıktımız: * 12HDS * 125GX * 33QWE * ASDFG * 12XYZ */ // ekran çıktımızda görüldüğü üzere ayırma karakterimiz olan "-" karakteri kayboldu |
Bu fonksiyonumuz explode fonksiyonu aksine, bir diziye ait tüm elemanları belirlenen ayraç ile birleştirerek tek bir string türü değişken haline getirir. Fonksiyonun alabileceği ilk parametre string türünden ayraç ve ikinci parametre ise n elemanlı bir dizidir.
Sözdizimi: implode(ayraç, dizi);
1 2 3 4 5 6 7 8 9 10 |
$dizi = array("Kod","Defteri","Geliştirici","Eğitimi","Sitesi"); // 5 elemanlı bir dizimiz mevcut $metin = implode("-", $dizi); // Dizimizin tüm elemanlarını aralarına "-" karakteri koyarak birleştirdik // Artık elimizde $metin adında tek bir string değişken var echo $metin; // Değişkeni ekrana yazırdık // Ekrana "Kod-Defteri-Geliştirici-Eğitimi-Sitesi" yazacaktır |
Bu fonksiyonumuz ise bir metnin belitilen karakter sayısından itibaren, belirlenen sayıda karakter almak için kullanılır. Fonksiyonumuz 3 adet partametre alır. Birinci parametre string türünden üzerinde işlem yapılacak metin, ikinci parametre integer türünden alınacak ilk karakterin karakter numarası, üçüncü parametre ise integer türünden alınacak ilk karakterden itibaren alınacak karakter sayısıdır. Negatif sayılar ters yönde karakterleri alabilirler.
Örnek:
1 2 3 4 5 |
$metin = "www.koddefteri.net"; echo substr($metin,4,10); // metnin 4 karakterinden itibaren 10 karakterini aldık ve ekrana yazdırdık // ekran çıktımızda "koddefteri" yazacaktır |
Bu fonksiyonlarımız metin çevresinde bulunan gereksiz boşlukları kaldırmak için kullanılırlar. Örneğin kullanıcı adı, email ya da url adresleri girilirken yanlışlıkla başta ya da sonda boşluk karakterleri kullanılmış olabilir. Biz bu boşluk karakterlerini görmezden gelmek istediğimizde metni trim fonksiyonlarına parametre olarak gönderebiliriz.
trim() fonksiyonu metnin her iki tarafındaki boşlukları kaldırırken, ltrim() fonksiyonu metnin solundaki, rtrim() fonksiyonu ise metnin sağındaki boşlukları kaldırmak için kullanılır. Kaldırılmayan bu boşluklar her ne kadar ekrana basılırken görünmez olsa da, değişkene atadığımız değerde mevcuttur.
Örnek:
1 2 3 4 5 6 7 8 9 |
$metin1 = " kullanıcı adı "; // metnin her iki yanında boşluk var $metin2 = " email"; // metnin solunda boşluk var $metin3 = "url adresi "; // metnin sağında boşluk var $metin1 = trim($metin1); // metnin her iki yanındaki boşlukları siler echo '<br>'; // Alt satıra geçmek için $metin2 = ltrim($metin2); // metnin solundaki boşlukları siler echo '<br>'; // Alt satıra geçmek için $metin3 = rtrim($metin3); // metnin sağındaki boşlukları siler |
Bu fonksiyonlardan strtoupper() fonksiyonu parametre olarak girilen metnin tüm karakterlerini büyük harfe çevirirken, strtolower() fonksiyonu girilen metnin tüm karakterlerini küçük harfe çevirir.
Örnek:
1 2 3 4 5 6 7 8 9 |
$selam = "Merhaba Kullanıcı"; echo strtoupper($selam); // Ekrana büyük harflerle "MERHABA KULLANICI" yazar echo '<br>'; // Alt satıra geçmek için echo strtolower($selam); // Ekrana küçük harflerle "merhaba kullanıcı" yazar |
Bu fonksiyonlarımızdan ucfirst() fonksiyonumuz metnin sadece ilk karakterini büyük harfe dönüştürürken, ucwords() fonksiyonumuz ise her kelimenin ilk harfini büyük harfe dönüştürür.
Örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$metin = "kod defteri. geliştirici sitesi."; // $metin adında değişken oluşturup içerisine // "kod defteri. geliştirici sitesi." metnini atadık echo ucfirst($metin); // Metnin sadece ilk karakterini büyük harf yapar // Ekrana "Kod defteri. geliştirici sitesi." yazar echo '<br>'; // Alt satıra geçmek için echo ucwords($metin); // Metnin tüm kelimelerinin ilk harflerini büyük harf yapar // Ekrana "Kod Defteri. Geliştirici Sitesi." yazar |
Bu fonksiyonumuz parametre olarak aldığı bir metni karakterlere ayırarak ya da istenilen sayıda karakter gruplarına ayırarak bir diziye atar. Eğer sadece tek parametre alırsa, her karakterleri dizinin ayrı ayrı elemanlarına atar. Eğer ikinci parametre olarak bir sayı girilirse, metni o sayı kadar karakter gruplarına bölerek bir dizi oluşturur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$selam = "Merhaba Kullanici"; $dizi = str_split($selam,3); // "Merhaba Kullanıcı" metnini 3'erli gruplara ayırarak diziye atar foreach($dizi as $yazdir){ echo $yazdir.'<br>'; // Dizinin elemanlarını alt alta ekrana yazdır } /* * Ekran çıktısı: * Mer * hab * a K * ull * ani * ci */ |
PHP dilindeki tüm dizge fonksiyonları için php.net adresini ziyaret edebilirsiniz.