PHP’de strpos Fonksiyonunun Kullanımı

strpos fonksiyonu PHP’de bir stringde ‘bulma’ işlemleri yapmaktır. Cümle biraz karışık olduysa örneklere bir gözatın isterseniz.

Kullanımı: strpos($metin, $aranacak_deger,$kacinci_siradan_baslayacak);

Not: $kacinci_siradan_baslayacak bölümünü kullanmayabilirsiniz.

Örnek1:

<?php
$metin = "ali okul gitti ama..";
$sonuc = strpos($metin,"a");
if ($sonuc === false)
	{
echo "Hayır böyle bir şey yok.";
		
	}
else
	{
		echo "Evet! Metinde aradığınız değeri bulundu!";
		echo "<br>";
		echo "Aradığınız değer metinde " . $sonuc . ". sırada bulundu";
	}
?>

Kodu incelediyseniz $sonuc değişkeninde, bulunan ilk sonucun kaçıncı sırada olduğunu öğrenebiliyoruz. Üstteki kodu çalıştırırsanız ilk sonucun 0. sırada olduğunu öğrenebilirsiniz.

Peki niye === false kullandık?

Şimdi programlamayı bir kenara koyun. Bilgisayarın çalışma mantığı çok basit bir olaya dayanmaktadır. 1 ve 0. Evet bilgisayarın temeli aslında 1 ve 0’dır. Bunu laf olsun diye söylemiyorum. Bilgisayarda yazdığınız her bir karakter aslında bilgisayarda 1 ve 0’lar ile belli bir düzene göre sıralanır. Örneğin siz bilgisayara A harfi yazdığınızda bilgisayara bu (bu kodlama muhtemelen yanlıştır, şu an örnek vermek amacıyla yazdım) 10101101 gibi kodlanarak yollanıyor.

Evet şimdi niye !== false kullandık ondan bahsedelim. 1 ve 0’a bir çeşit True-False diyebiliriz.
$sonuc değişkeninin bize bulunan harfin kaçıncı sırada olduğunu anlattığını söylemiştik. Farkettiyeniz bu kodda 0. sırada buldu harfi. Tabii bilgisayar bunu bizim gibi rakam olan 0’ı algılamıyor, False olan 0’ı algılıyor. $sonuc == false yapsaydım 0==false olacaktı ve sonuç doğru olacaktı. Yani false == false olacaktı. Ama $sonuc === false yaparak bu sorunu ortadan kaldırıyoruz. Yeri gelmişken söyleyeyim nasıl == simgesini tersi != ise === işaretinin terside !== işaretidir.

Diğer bir örnekle bitirelim:

<?php
$text = "ali okula gitti ama.";
$sonuc = strpos($text,"a",1);
if($sonuc !== false)
	{
		echo "Evet! Metinde aradığınız değeri bulundu!";
		echo "<br>";
		echo "Aradığınız değer metinde " . $sonuc . ". sırada bulundu";
	}
else
	{
		echo "Aranılan değer bulunamadı";
	}
?>

strpos($text,”a”,1)

Buradaki 1, a harfini $text değişkeninin içinde kaçıncı sıradan aramaya başlanacağını belirtir. ali’deki a harfi 0. sıradadır.

 
249 Kudos
Don't move
  1. peki bir metinde değilde bir dizide arama yaptırıyorsak nasıl olacak kaçıncı sırada olduğunu nasıl bulucaz örnek vereyim kelimeyi dizinin 4.elemanında bulduysa 4.sırada bulundu desin.?

  2. === bilgisi için teşekkürler. daha önceden bilmiyordum 😉

  3. Bildiğim kadarıyla “===” özdeşlik işareti. Dönen 0(int) ile false(bool) türleri birbirine eşit olmadığı için böyle sonuçlanıyor.Yani ilk şart’da “$sonuc === false” yerine “$sonuc === 0” yazsaydık bu sefer true bloğunu gösterecekti(int===int+0==0). Bool Eşitliğinde 0 false, özdeşlikte 0 int olarak algılanıyor. Zaten aranan “a” bulunmadığında “false” değeri döneceğinden “false===false” özdeş olduğu için bu sefer doğru tercih olarak(false==false) true bloğunu gösterecekti :smile: Özdeşlik Aşağıdaki örnekteki gibi.

    $a=1; //int
    $b=”1″; // str
    echo $a === $b ? “Eşit” : “Eşit değil”; // EŞİT DEĞİL
    echo $a == $b ? “Eşit” : “Eşit değil”; // EŞİT

    Yani

    echo 0 == false ? “EVET” : “HAYIR”; // EVET
    echo 0 === false ? “EVET” : “HAYIR”; // HAYIR

    Doğru mudur hocam ? :smile:

Yorum Yap


Not - Bunları KullanabilirsinizHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>