PHP ile ilgili yaygın bir senaryo ve çözümünü içeren bir kod parçacığı örneği hazırlayacağım.
Bu örnekte, bir metin (string) içerisinde belirli bir kelimenin veya karakter dizisinin (substring) olup olmadığını nasıl kontrol edebileceğimizi göstereceğim. Bu, web geliştirmede sıkça karşılaşılan bir durumdur; örneğin kullanıcı girdilerini doğrulamak, metin analizi yapmak veya belirli anahtar kelimeleri aramak için kullanılabilir.
Aşağıdaki kodda,
Kod:
str_contains()
Kod:
strpos()
Bu PHP kodu, bir metin içerisinde belirli bir alt dizinin varlığını kontrol etmenin iki yaygın yolunu göstermektedir:
- : PHP 8.0 ve sonrasında sunulan, okunabilirliği yüksek ve doğrudan bu amaç için tasarlanmış bir fonksiyondur.Kod:
str_contains()
- : Daha eski PHP sürümlerinde de çalışan bu fonksiyon, alt dizinin metin içindeki ilk konumunu döndürür. Eğer alt dizi bulunamazsaKod:
strpos()
değeri döndürür. Bu fonksiyonu kullanırken, bulunan konumKod:false
(yani metnin en başı) olabileceği için
ile katı karşılaştırma (Kod:false
) yapmak önemlidir. Ayrıca, büyük/küçük harf duyarlılığını göz ardı ederek arama yapmak içinKod:!==
fonksiyonunun nasıl kullanılacağı da gösterilmiştir.Kod:stripos()
<?php
// Aranacak ana metin
$anaMetin = "Merhaba dünya, bu bir PHP örneğidir.";
// Aranacak kelime veya karakter dizisi
$arananKelime = "dünya";
$aranmayanKelime = "javascript";
echo "Ana Metin: '" . $anaMetin . "'\n\n";
// --- Çözüm 1: str_contains() fonksiyonu (PHP 8.0 ve üzeri için önerilir) ---
echo "--- str_contains() ile Kontrol ---\n";
if (str_contains($anaMetin, $arananKelime)) {
echo "'" . $arananKelime . "' kelimesi metin içinde bulundu.\n";
} else {
echo "'" . $arananKelime . "' kelimesi metin içinde bulunamadı.\n";
}
if (str_contains($anaMetin, $aranmayanKelime)) {
echo "'" . $aranmayanKelime . "' kelimesi metin içinde bulundu.\n";
} else {
echo "'" . $aranmayanKelime . "' kelimesi metin içinde bulunamadı.\n";
}
echo "\n";
// --- Çözüm 2: strpos() fonksiyonu (Tüm PHP versiyonları ile uyumlu) ---
// strpos() fonksiyonu, bulunan kelimenin başlangıç pozisyonunu döndürür.
// Eğer kelime bulunamazsa false döndürür.
// Dikkat: Pozisyon 0 (sıfır) olabileceğinden (metnin başında bulunursa),
// katı karşılaştırma (=== veya !==) kullanmak önemlidir.
echo "--- strpos() ile Kontrol ---\n";
if (strpos($anaMetin, $arananKelime) !== false) {
echo "'" . $arananKelime . "' kelimesi metin içinde bulundu.\n";
} else {
echo "'" . $arananKelime . "' kelimesi metin içinde bulunamadı.\n";
}
if (strpos($anaMetin, $aranmayanKelime) !== false) {
echo "'" . $aranmayanKelime . "' kelimesi metin içinde bulundu.\n";
} else {
echo "'" . $aranmayanKelime . "' kelimesi metin içinde bulunamadı.\n";
}
echo "\n";
// Büyük/küçük harf duyarsız arama için stripos() kullanılabilir
$anaMetinKucukBuyuk = "Merhaba Dünya, bu bir PHP örneğidir.";
$arananKelimeKucuk = "dünya";
echo "--- stripos() ile Büyük/Küçük Harf Duyarsız Kontrol ---\n";
echo "Ana Metin (Büyük/Küçük Karışık): '" . $anaMetinKucukBuyuk . "'\n";
echo "Aranan Kelime (Küçük Harf): '" . $arananKelimeKucuk . "'\n";
if (stripos($anaMetinKucukBuyuk, $arananKelimeKucuk) !== false) {
echo "'" . $arananKelimeKucuk . "' kelimesi (büyük/küçük harf duyarsız) metin içinde bulundu.\n";
} else {
echo "'" . $arananKelimeKucuk . "' kelimesi (büyük/küçük harf duyarsız) metin içinde bulunamadı.\n";
}
/*
Çıktı Nasıl Olacak:
Ana Metin: 'Merhaba dünya, bu bir PHP örneğidir.'
--- str_contains() ile Kontrol ---
'dünya' kelimesi metin içinde bulundu.
'javascript' kelimesi metin içinde bulunamadı.
--- strpos() ile Kontrol ---
'dünya' kelimesi metin içinde bulundu.
'javascript' kelimesi metin içinde bulunamadı.
--- stripos() ile Büyük/Küçük Harf Duyarsız Kontrol ---
Ana Metin (Büyük/Küçük Karışık): 'Merhaba Dünya, bu bir PHP örneğidir.'
Aranan Kelime (Küçük Harf): 'dünya'
'dünya' kelimesi (büyük/küçük harf duyarsız) metin içinde bulundu.
*/
?>