Php metin içerisinde belirli bir ifade aramak için strstr() fonksiyonu kullanılır. Genelde şartlı ifadelerde kullanılan bu fonksiyon, aranılan metnin öncesini ve sonrasını almak içinde kullanılabilir. Büyük küçük harfe duyarlıdır. Aranılan ifadenin tam karşılığını kontrol eder. Php resmi sitesinde samanlık ve iğne ifadesi yer alır. Yani samanlıkta iğne aramanın php dilindeki karşılığıdır. Şimdi örneklerle pekiştirelim.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=strstr($metin, 'Kazım');
echo $ara;
//Çıktı: Kazım Uslu, Burası benim kişisel kütüphanem.
Eğer bir sonuç olarak alacaksak, aradığımız kelimeden başlayarak sonrasını ekrana bastıracaktır. Aranılan metnin öncesini almak istersek bunu yine fonksiyona belirtmemiz gerekir. Hemen onu da ekleyelim.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=strstr($metin, 'Kazım', true);
echo $ara;
//Çıktı: Ben
Öncesi kısmında aranılan metin eklenmez. Fakat fonksiyona true ifadesini verirsek metnin öncesini alır. Yukardaki yaptığımız örnekte herhangi bir ifade eklemedik. Bu durumda false olarak otomatik eklendi. False olarak belirtebiliriz.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=strstr($metin, 'Kazım', false);
echo $ara;
//Çıktı: Kazım Uslu, Burası benim kişisel kütüphanem.
Bu kod yine ilk örnekle aynı sonucu verir.
Büyük Küçük Harf Duyarlı olmadan PHP String içerisinde Arama Yapma
Yukardaki fonksiyon ile aynı mantıkla çalışan fakat metindeki büyük küçük harfe duyarsız olarak arama yapan fonksiyon stristr()'dir. Hemen yukardaki örnekle devam edelim.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=stristr($metin, 'kazım');
echo $ara;
//Çıktı: Kazım Uslu, Burası benim kişisel kütüphanem.
Ara değişkenindeki arama metnini küçük harf ile yazdım.
Metin içerisinde Arama Yaptığında Sadece Var mı? Yok mu? Kontrol Etme
Daha az bellek harcayan optimize yazılımlar yazmak isteyenler için bu fonksiyonun öncesini ve ardını getirmeden sadece sonuç olarak false ya da true dönüş yapan strpos() kullanılır. Eğer büyük küçük harf duyarlılığı olmadan bu fonksiyonu kullanmak isterseniz stripos() kullanabilirsiniz.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=strpos($metin, 'Kazım');
if($ara == true)
{
echo 'Bu metinde Kazım kelimesi mevcut.';
}
else
{
echo 'Bu metinde Kazım kelimesi bulunmuyor.';
}
//Çıktı: Bu metinde Kazım kelimesi mevcut.
Metinde Kazım kelimesi olduğu için ara değişkeni true olacaktır. Bu da if-else yapısınında true karşılığı gelen kısmı çalıştırır.
Farklı Örneklerle Pekiştirme
İlk örneğimiz birden fazla kelime içerme durumunda fonksiyonun nasıl çalışacağı konusunda olsun.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
$ara=strstr($metin, 'a');
echo $ara;
//Çıktı: azım Uslu, Burası benim kişisel kütüphanem.
Metinde sadece a harfini aradık ve yukardaki metinde birden fazla a harfi var. Çıktıyı kontrol ettiğimizde ilk a harfinden başladığını görmüş oluyoruz.
Bir diğer örnek olarak bir senaryo geliştirelim. Verilen değerin içerisinde 10 sayısının olup olmadığını kontrol edelim. Eğer 10 sayısı varsa ekrana bu metinde 10 sayısı geçiyor yazdıralım. Eğer metinde bir sayı yoksa, ekrana bu metinde 10 sayısı yoktur yazdıralım.
$metin = 'Ben Kazım Uslu, Burası benim kişisel kütüphanem.';
if(strstr($metin, '10'))
{
echo 'Bu metinde 10 sayısı vardır.';
}
else
{
echo 'Bu metinde 10 sayısı yoktur.';
}
//Çıktı: Bu metinde 10 sayısı yoktur.
Metin değişkeninde 10 sayısı bulunmadığı için ekrana bu metinde 10 sayısı yoktur yazacaktır.
Bu yazıya henüz bir yorum yapılmamış, hemen bir tane yapmak ister misin ?