Strpos ( Arama ) Komutu ve Türevleri

+ -
+3



Bu dersimizde php'de yazı içerisinde herhangi bir yazıyı aratmayı ve bu aramaları nasıl özelleştirebileceğimizi göstereceğiz.

Kodumuzu kullanımı oldukça basittir öncelikle "strpos" kodumuzun mantiğini anlatalım;
strpos("Bu servis değil diğer servis.", "değil"); // Komut true olarak dönecektir. (Türkçe karakterleri de desteklemektedir.)
//Fakat özel karakterler çalışmamaktadır ;
strpos("✗ test yazısı", "✗"); // Komut false olarak dönecektir.
Yukarıdaki örnekte olduğu gibi arkadaşlar türkçe karakter işlemektedir fakat özel karakterler çalışmamaktadır.

Kullanım yerleri ve tavsiye örnekler 

if koşulunda kullanım:
$veri = " Koşul atama testi";
if(strpos($veri, "koşul")){
   echo "Koşul dosyada mevcut.";
}else{
   echo "Koşul dosyada mevcut değil.";
} // Ekrana "Koşul dosyada mevcut değil yazdıracaktır. Çünkü kelimede büyük küçük uyumu gerekli.
$veri = "Koşul atama testi";
if(strpos($veri, "Koşul")){
   echo "Koşul dosyada mevcut.";
}else{
   echo "Koşul dosyada mevcut değil.";
} // Ekrana "Koşul dosyada mevcut değil yazdıracaktır.
// Çünkü ilk baştaki kelimeye bir boşluk bırakmamız gerekmektedir. Aksi taktirde ilk baştaki kelimeyi saymadan geçecektir.
$veri = " Koşul atama testi";
if(strpos($veri, "Koşul")){
   echo "Koşul dosyada mevcut.";
}else{
   echo "Koşul dosyada mevcut değil.";
} // Ekrana "Koşul dosyada mevcut." yazdıracaktır. Çünkü verimizi kusursuz olarak arattırdık.
// arama verisini de tanımlı yapalım;
$veri = " Koşul atama testi";
$aranan = "Koşul";
if(strpos($veri, $aranan)){
   echo "Koşul dosyada mevcut.";
}else{
   echo "Koşul dosyada mevcut değil.";
} // Ekrana "Koşul dosyada mevcut." yazdıracaktır. Çünkü verimizi kusursuz olarak arattırdık.

if koşulunda kullanabileceğimiz ilk yöntemler bunlar birde "!" işareti ile tam tersini yapabiliriz,

$veri = " Koşul atama testi";
if(!strpos($veri, "Koşul")){
   echo "Koşul dosyada mevcut değil.";
}else{
   echo "Koşul dosyada mevcut.";
} // Ekrana "Koşul dosyada mevcut." yazdıracaktır.// ! işareti değer eğer "true" ise "false" , "false" ise "true" olarak döndürülecektir.

Function içerisinde arama işlemi;
$metin = " Function içerisinde arama yapılacak metin";
function ara($kelime){
    global $metin; // Arama yapacağın yeride function içinde global olarak belirtmek gerekiyor.
    if( strpos($metin, $kelime) ){
        echo $kelime . " : Aradığın kelime mevcut.";
    }else{
        echo $kelime . " : Aradığın kelime bulunamadı.";
    }
}
ara("arama"); // Ekrana : "arama  : Aradığın kelime mevcut.";
ara("test"); // Ekrana : "test  : Aradığın kelime bulunamadı.";

Foreach içerisinde arama işlemi(Diğer döngülerde de benzer şekilde kullanabilirsiniz);
$metin = array(
    " metin",
    " metin2",
    " arama",
    " premium-turk",
    " deneme"
);
foreach($metin as $pt){
    if(strpos($pt, "metin")){
        echo $pt . " içerisinde 'metin' kelimesi mevcuttur.<br />";
    }else{
        echo $pt . " içerisinde 'metin' kelimesi mevcut değildir.<br />";
    }
}    // Ekran Çıktısı :
    // metin içerisinde 'metin' kelimesi mevcuttur.
    // metin2 içerisinde 'metin' kelimesi mevcuttur.
    // arama içerisinde 'metin' kelimesi mevcut değildir.
    // premium-turk içerisinde 'metin' kelimesi mevcut değildir.
    // deneme içerisinde 'metin' kelimesi mevcut değildir.

Eğer kelimelerin başında boşluk olmadan aratmak istiyorsanız "strstr()" kodunu aratınız.

Belirtilen "strpos()" kodunun benzerleri (Kullanım türleri aynıdır!) ;
  • strrpos() - Bir dizgede bir karakterin sonuncusunu bulur
  • stripos() - Harf büyüklüğüne duyarsız olarak bir alt dizgenin ilkinin konumunu bulur
  • strripos() - Bir dizgede harf büyüklüğüne duyarsız olarak bir alt dizgenin sonuncusunu bulur
  • strrchr() - Bir dizgede belli bir karakterin sonuncusuna göre dizgenin bir parçasıyla döner
  • substr() - Dizgenin bir kısmını döndürür
  • stristr() - Harf büyüklüğüne duyarsız olarak ilk alt dizgeyi bulur
  • strstr() - İlk alt dizgeyi bulur (Kelimelerin başında boşluk kullanmaya gerek kalmaz.)




Yorumlar 0

Bilgilendirme
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.