PHP strstr() Fonksiyonu Kullanımı
PHP’de metinlerle çalışırken bazen belirli bir karakterden önceki veya sonraki kısmı almak isteyebiliriz. Böyle durumlarda kullanabileceğimiz pratik fonksiyonlardan biri strstr() fonksiyonudur.
Bu fonksiyon, verilen metin içerisinde belirttiğimiz karakteri veya kelimeyi arar. Eşleşme bulunduğunda ise ister eşleşmeden sonraki kısmı, istersek de (PHP 5.3 ve sonrası) eşleşmeden önceki kısmı döndürebilir.
Ayrıca sadece bir karakterin metin içerisinde bulunup bulunmadığını kontrol etmek için de oldukça kullanışlıdır. Örneğin bir e-posta adresinde @ karakterinin yer alıp almadığını hızlıca kontrol edebilirsiniz.
Kullanımı
Fonksiyonun genel kullanımı aşağıdaki şekildedir.
strstr($text, "aranacak_ifade", $beforeNeedle);
Parametreler:
- $text : Arama yapılacak metin.
- aranacak_ifade : Aranacak karakter veya kelime.
- $beforeNeedle (isteğe bağlı) :
trueverilirse eşleşmeden önceki kısmı döndürür.
Not: Üçüncü parametre (
$beforeNeedle) PHP 5.3.0 ile birlikte eklenmiştir.
Aranan Karakterden Sonraki Bölümü Almak
Aşağıdaki örnekte @ karakterinden itibaren metnin geri kalanı ekrana yazdırılmaktadır.
<?php
$text = "test@gmail.com";
$result = strstr($text, "@");
echo $result;
?>
Çıktı:
@gmail.com
Aranan Karakterden Önceki Bölümü Almak
Üçüncü parametreye true gönderildiğinde eşleşmeden önceki bölüm döndürülür.
<?php
$text = "test@gmail.com";
$result = strstr($text, "@", true);
echo $result;
?>
Çıktı:
test
Koşul İçerisinde Kullanımı
strstr() fonksiyonu, aranan ifade bulunursa değer döndürdüğü için if yapılarında da rahatlıkla kullanılabilir.
<?php
$text = "test@gmail.com";
if (strstr($text, "@")) {
echo "E-posta adresi '@' karakterini içeriyor.";
} else {
echo "E-posta adresi '@' karakterini içermiyor.";
}
?>
Çıktı:
E-posta adresi '@' karakterini içeriyor.
Sonuç
strstr() fonksiyonu, özellikle metin içerisindeki belirli bir karakteri veya ifadeyi aramak ve eşleşmeden önceki ya da sonraki kısmı almak için oldukça pratik bir çözümdür. Basit doğrulama işlemlerinde ve metin ayrıştırma (string parsing) senaryolarında sıkça kullanılabilecek faydalı PHP fonksiyonlarından biridir.
📝 Arşiv Notu
Bu yazı ilk olarak 2010 yılında hazırlanmıştır. Örnekler PHP 5 sürümüne göre hazırlanmıştır. Günümüzde yalnızca bir metnin belirli bir ifadeyi içerip içermediğini kontrol etmek için PHP 8 ile gelen
str_contains()fonksiyonu daha okunabilir bir alternatif sunmaktadır. Ancakstrstr()fonksiyonu, eşleşen metni döndürme özelliği sayesinde hâlâ birçok senaryoda kullanılmaktadır.
strstr yerine strpos kullaniyorum . Bir ara strstr’ye sarmıştım ama bana string arama konusunda pekte başarılı gelmedi. bende strpos’a döndüm fonk. tek dönen değer var oda false if(strpos(’email@domain.tld’,’@’) !== FALSE ) { /*Operasyon*/ }