Php, string fonksiyonlar
9316 0

String Nedir?

String kavramı programlama dillerinde karakter toplulukları için kullanılır. Mesela "Yılmaz" bir string ifadedir. Tabii string ifadelelerin yalnızca harflerden oluştuğunu söylemiyoruz. Örneğin "yılmaz1234" ifadesi de bir string'tir. Aslınd burada temel faktör siz bu veriyi nasıl kullanacaksınız. Anlayacağınız üzere bu değerlerle matematiksel işlemler yapılamaz. String ifadeyi de en temel bu şekilde ayırabilirsiniz. String ifadeler tırnaklar arasına yazılır, yine bu da ayırıcı bir özelliktir. String tanımlamalarına örnekler;

<?php
$isim="Yılmaz";
$sehir="Kırklareli";
$kullaniciAdi="deneme1234";
?>

String Fonksiyonlar

Bazı durumlarda bahsettiğimiz bu string değerler üzerinde işlemler yapmak isteyebilirsiniz. Php dilinde bu işlemleri yapabileceğiniz fonksiyonlardan bahsedelim.

Önemli Not: Başıma gelen ve sizi de sıkıntıya sokabilecek bir problemden bahsedeyim. Eğer sayfanızı "UTF-8" karakter kodlaması ile kodladıysanız ve Türkçe metinler üzerinde çalışıyorsanız bazı fonksiyonlarda sıkıntı yaşayabilirsiniz. Yani "şçğ..." gibi Türkçe karakterleri hesaba katmayabilir. Bu durumda işlem yaparken "iso-8859-9" Türkçe karakter kodlamasını kullanarak problemi giderebilirsiniz.

strlen($string_degisken)

Bu fonksiyon ile string ifadenin uzunluğunu bulabilirsiniz. Fonksiyon tamsayı tipinde değer üretir.

$degisken="Php";
echo strlen($degisken); //3 sonucunu üretir.

str_replace($aranan_deger,$yerine_gelecek_deger,$string_ifade)

Bu fonksiyon ile bir string içerisinde istenilen bir metni bir başka metin ile değiştirebilirsiniz. Filtreleme işlemleri için çok sık başvurulan bir fonksiyondur.

$metin="Php Çok Güzel";
echo str_replace("Çok","En",$metin);

//Php En Güzel  

strtolower($metin), strtoupper($metin)

strtolower fonksiyonu, belirtilen string ifadenin tüm karakterlerini küçük harfe çevirir. Bu fonksiyonun tam tersi strtoupper'dır.

$metin="PHP";
echo strtolower($metin);

//php

explode($ayirma_karakteri,$string_degisken)

Bu fonksiyon ile string ifadeyi belirttiğiniz ayırma karakterine göre parçalayabilirsiniz. Fonksiyon dizi tipinde bir değer döndürür.

$metin="patates,domates,biber";
$parcala=explode(",",$metin);
echo $parcala[1];

//domates

implode($birlestirme_karakteri,$dizi)

explode fonksiyonun tersi işlem yapar. Bir dizinin elemanlarını belirtilen birleştirme karakterini araya koyarak string ifadeye çevirir.

$isimler=array("Ahmet","Mehmet","Hüseyin");
$birlestir=implode("-",$isimler);
echo $birlestir;

//Ahmet-Mehmet-Hüseyin

str_split($string_degisken,[$adet]) 

Verilen string değişkeni "$adet" kadar küçük stringlere parçalar. Eğer ikinci parametre yazılmazsa 1 karakter, 1 karakter parçalar.

$isim="Ahmet";

$parcala1=str_split($isim,2);
$parcala2=str_split($isim);

echo $parcala1[0];
echo "<br/>";
echo $parcala2[0];

/*
Ah
A
*/

trim($string_degisken), ltrim($string_degisken), rtrim($string_degisken)

Bu fonksiyonlar verilen strin ifadenin başındaki ve sonundaki boşlukları atmak için kullanılır. Form aracılığı ile gelen verilerde boşluklar olması mümkün ve bu bir sorun teşkil eder. Bunu önlemek için çok sık kullanılan fonksiyonlardır, özellikle trim fonksiyonu. trim hem başındaki hem sonundaki, ltrim başındaki, rtrim sonundaki boşlukları atar.

substr($string_degisken,$baslangic,$uzunluk)

String değişkenin içerisinden başlangıç ve uzunluğu belirtilen stringi kırpmak için kullanılır.

$degisken="Php öğreniyorum!";
$kirp=substr($degisken,0,3);
echo $kirp;

//Php

Yada farklı bir kullanım olarak negatif değer verirseniz sondan geriye doğru gelir sonra istenen uzunluktaki veriyi kırpar. Yine sık kullanılan bir durum olan dosya uzantısı almak için;

$dosya="deneme.txt";
$uzanti=substr($dosya,-4,4);
echo $uzanti;

//.txt

md5($string_degisken), sha1($string_degisken)

Verilen string değeri şifrelemek için kullanılır. Belirli algoritmalar kulalnarak verdiğiniz değerleri şifreler ve böylece elinizdeki kullanıcı şifrelerini veritabanınızda güvenle saklama imkanı sunar. 

$sifre="123456";
echo md5($sifre);

//e10adc3949ba59abbe56e057f20f883e

Bu şifreleme yöntemlerinin algoritmaları çözülebilmiş değildir. Çözdüğünü iddia eden sayfalara denk gelirseniz itibar etmeyin. Yapılan işlem az önce de gördüğünüz gibi önceden şifreli hali bilinen şifreler varsa onların karşılıkları verilmektedir. sha1 fonksiyonunu da aynı şekilde kullanabilirsiniz. Burada kafanızı karıştıran bir durum oluşabilir. Tamam şifreledim de ne olacak şimdi?

Kullanıcının belirlediği şifreyi md5 veya sha1 ile şifreleyip veritabanına kaydediyorsunuz. Böylecek kullanıcının şifresini siz dahi bilmiyorsunuz. Kullanıcı tekrar giriş yapmak istediğinde yazdığı şifreyi yine fonksiyonlardan geçirip veritabanındaki ile karşılaştırıyorsunuz, eğer aynı ise işlem başarılı. Bu bize veritabanımız ele geçirilse bile kullanıcı şifrelerinin güvende olma rahatlığını veriyor.

ucfirst($string_degisken), ucwords($string_degisken)

ucfist ile string ifadenin ilk harfini, ucwords ile her kelimenin ilk harfini büyük harfe çevirebilirsiniz.

$string_degisken="metnimizin tamamı küçük harflerden oluşuyor.";
echo ucfirst($string_degisken),"<br>";
echo ucwords($string_degisken);

/*
Metnimizin tamamı küçük harflerden oluşuyor.
Metnimizin Tamamı Küçük Harflerden Oluşuyor.
*/

strstr($string_degisken,$aranan,[true/false])

String bir değer içinde başka bir string aramak için kullanılır. Eğer aranan string bulunursa 3. parametreyi belirtmediyseniz (true yada false) metni bulduğu yerden sonrasını verir.Eğer 3. parametreyi "true" olarak ayarlarsanız metni bulduğu yerin öncesini verir, "false" yaparsanız başlangıçtaki gibi çalışır. Aranan metin bulunamazsa hiçbir değer döndürmez yani "null" döner.

$string_degisken="yilmaz@gmail.com";
echo strstr($string_degisken,"@");//@gmail.com
echo "<br/>";
echo strstr($string_degisken,"@",true);//yilmaz

empty($degisken)

Değişken içerisinde bir değer olup olmadığını kontrol eder. Varsa true yoksa false değeri döner.

$degisken="";
if(empty($degisken)){
    echo "Değer yok!";
}else{
    echo "Değer var";
}

//Değer Yok!

isset($degisken)

Bir değişkenin var olup olmadığını kontrol edersiniz. En çok formdan değer gelip gelmediğini kontrol etmek için kullanılır.

if(isset($_POST["degisken"])){
    echo "Form verileri geldi.";
}else{
    echo "Form verileri gelmedi!";
}

//Form verileri geldi.

is_string($degisken)

Belirtilen değişkenin string olup olmadığına bakılır. Eğer string ise true değilse false değeri üretir.

$degisken=12;
if(is_string($degisken)){
	echo "String";
}else{
	echo "String Değil!";
}

//String Değil!

htmlentities($string_degisken)

Bu fonksiyon ile html'in özel karakterlerini veya etiketlerini ekrana bastırabilirsiniz. Örnekle daha iyi açıklanabilir.

$string_degisken="Bu şekilde <strong>koyu</strong> yazdırılır.";
    
echo $string_degisken;
echo "<br/>";
echo htmlentities($string_degisken,ENT_QUOTES, "UTF-8");

/*
Bu şekilde koyu yazdırılır.
Bu şekilde <strong>koyu</strong> yazdırılır.
*/

İkinci parametredeki "ENT_QUOTES" tırnaklara izin verileceğini, üçüncü parametre de anlayacağınız üzere karakter kodlamasını belirtmektedir.

^
X