
Php ile kullanabileceğimiz diğer bir metin fonksiyonu strpos yani String Position fonksiyonudur bir karakter ve ya kelimenin metin içerisinde var olup olmadığını kontrol etmek için veya bu metin içerisindeki yerini yani pozisyonunu bulmak için strpos fonksiyonunu kullanabiliriz.
Manuelden ilgili fonksiyonun sayfasına giriyorum, fonksiyonun kullanımına baktığımda ilk parametre olarak metni ikinci parametre olarak aranan metni ve opsiyonel olarak offset ile hangi karakterden itibaren arama yapmak istediğimizi belirtebiliriz.
Fonksiyon bize dönderdiği değer olarak eğerki sonucu bulamıyorsa yani metin içerisinde ilgili karakter veya kelime mevcut değil ise false değerini dönderir. Bunun haricinde dönderceği sayısal değerler o metin içerinde yer aldığı, başladığı ilk karakterin sayısıdır. Yani ilk eleman sıfırdan başlamak üzere karakterin pozisyonudur.
Bu anlamda biz bunun var olup olmadığını kontrol ederken direk hem sıfıra eşit olması hem kendisi içerisinde var olmasını temsil ettiği için Bu değerin false olduğunu kontrol etmeliyiz ve bunun yanında değişken tipi olarakta false olduğunu kontrol etmeliyiz.
Ne demek istediğimi kısaca şimdi inceleyeceğiz. Metin şeklinde bir ifade tanımlayalım
$metin = "biz her gun bir yerlere bir gideriz";
böyle bir ifademiz olsun. metin içerisinde bir kelimesinin geçip geçmediğini arıyorsak strpos fonksiyonu ile ilk paremetre metin olmak üzere ikinci parametreye aradığımız ifadeyi gireriz
Mesela bir ifadesini girdiğimizde
<?php
$metin = "biz her gun bir yerlere bir gideriz";
echo strpos($metin,"bir");
?>
ve ilgili sayfayı browserımızdan çağırdığımızda İlk bulduğu soldan başlayarak devam ederken karakter kaçsa orda sayıyı söyler Şöyle bir baktığımızda ilk burda bir kelimesini bulduğunu görüyoruz.
ve başlangıç pozisyonu 12 dir. Yani sıfır olmak üzere 12 inci karakterden itibaren görüyoruz.Peki biz kelimesini arasaydık bu durumda ilk karakter olduğu için sıfır değerini dönderdiğini görüyoruz.
Bu durumda ben if strpos gibi bir ifade kullanırsam Yanlış bir yaklaşım yapmış olurum
<?php
$metin = "biz her gun bir yerlere bir gideriz";
if( strpos($metin,"bir") ){
echo 'icerisidne var';
}
?>
Çünkü sıfır biliyoruz ki aynı zamanda false değeri olarak ifade ediliyor. Bu durumda ben gerçekten var olup olmadığını kontrol etmek için üç eşit yani hem değişken tipinin aynı olması hemde değişkenin değerinin aynı olması şeklinde kontrol edebiliirim
<?php
$metin = "biz her gun bir yerlere bir gideriz";
if( strpos($metin,"bir") == true ){
echo 'icerisidne var';
}
?>
Yoksa burda belirttiğimiz şu sıfır "0" ile bu sıfır 0 aynı olarak nitelendirilebilir. Bundan dolayı sayfayı çağırdığımda bu ifade sıfır yada bir iki üç gibi devam ederse bu durumda metin içerisinde mevcuttur, false değerini dönderirse bu durumda metin içerisinde mevcut değildir o zaman biz burdan dönen değer false ise metin içerisinde yoktur diyebiliriz.
Yani şöyle bir ifade ile false eşitse metin içerisinde yok değilse var diyebiliriz. Metin içerisinde var olduğunu görüyoruz
<?php
$metin = "biz her gun bir yerlere bir gideriz";
if( strpos($metin,"biz") === false){
echo 'metin icerisinde yok';
}else{
echo 'icerisinde var';
}
?>
Olmayan bir ifadeyi yazdığımızda ise metin içerisinde yok deyiminin yazdırıldığını görüyoruz. Bundan dolayı metin içerisinde varsa tip olarak false tan farklı bir değer alması gerekir.
Yani bu şekilde direk metin içerisinde var kontrol yapısını gerçekleştirebiliriz
<?php
$metin = "biz her gun bir yerlere bir gideriz";
if( strpos($metin,"biz") !== false){
echo 'icerisinde var';
}
?>
Sayfayı yenilediğimizde metin içerisinde varın yazdırıldığını görüyoruz. Bu durumda metin içerisinde olmadığını belirtmek için ise bu ifadenin bu şekilde false eşit olduğunu kontrol edebiliriz.
<?php
$metin = "biz her gun bir yerlere bir gideriz";
if( strpos($metin,"biz") === false){
echo 'metin icerisinde yok';
}
if( strpos($metin,"biz") !== false){
echo 'icerisinde var';
}
?>
Bu iki kontrol yapısı ile gerçekleştirmemiz mümkündür. Sıfır ve sıfırdan büyük değerler için pozisyonunu bulmuş oluruz.Strpos fonksiyonun genel kullanımı bu şekildedir