Menu

PHP str_contains(): Bir Dizge Metin İçeriyor mu Kontrolü

str_contains($haystack, $needle) $needle değeri $haystack içinde herhangi bir yerde geçiyorsa true döndürür. Büyük küçük harfe duyarsız sürümü, str_starts_with ve str_ends_with fonksiyonlarını, birkaç kelimeyi kontrol etmeyi ve PHP 7 için strpos sürümünü öğrenin.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

str_contains($haystack, $needle) $needle değeri $haystack içinde herhangi bir yerde geçiyorsa true, aksi halde false döndürür. PHP 8.0'da eklendi ve büyük küçük harfe duyarlıdır.

strpos() fonksiyonundan farklı olarak gerçek bir boolean döndürür, bu yüzden "0 konumunda bulundu, false gibi görünüyor" tuzağı yoktur.

Söz dizimi

str_contains(string $haystack, string $needle): bool
str_starts_with(string $haystack, string $needle): bool
str_ends_with(string $haystack, string $needle): bool

Üçü de PHP 8.0'da eklendi ve bayt bayt çalışır, bu yüzden Japonca ve diğer UTF-8 metinleri bir mb_ sürümüne gerek kalmadan doğru işler.

str_starts_with ve str_ends_with ile başı veya sonu kontrol etme

Büyük küçük harfe duyarsız içerme

str_icontains() diye bir fonksiyon yoktur. Önce iki dizgeyi de küçük harfe çevirin. mb_strtolower(), strtolower() fonksiyonunun dokunmadığı É veya Kiril harfleri gibi ASCII dışındaki harfleri de küçük harfe çevirir.

Boş aranan değer true döndürür

Boş bir aranan değer, boş olan dahil her dizgede bulunur. Bu, aranan değer kullanıcının boş bıraktığı bir arama kutusundan geldiğinde önemlidir.

Bir dizgenin birkaç kelimeden herhangi birini veya hepsini içerip içermediğini kontrol etme

str_contains() tek bir aranan değer alır. Bir aranan değerler dizisi üzerinde dolaşın: "herhangi biri" için biri eşleşir eşleşmez, "hepsi" için biri başarısız olur olmaz dönün.

Bir değerin bir dizgenin alt dizgesi değil de bir dizinin elemanlarından biri olup olmadığını kontrol etmek için in_array() kullanın.

PHP 8 öncesi: strpos !== false

PHP 7'de çalışması gereken kodlar katı bir karşılaştırmayla strpos() kullanır. Boş bir aranan değer dışında str_contains() ile aynı yanıtı verir: PHP 7'nin strpos() fonksiyonu Warning: strpos(): Empty needle yazdırır ve false döndürürdü.

Son satır, metin orada olduğu halde bool(false) yazdırır, çünkü php 0 konumundadır. Bu tür kontrolleri str_contains() ile değiştirmek en kolay PHP 8 yükseltmelerinden biridir.

Sıkça Sorulan Sorular

PHP'de bir dizgenin bir kelime içerip içermediğini nasıl kontrol ederim?

PHP 8'de true veya false döndüren str_contains($haystack, $needle) kullanın: str_contains('Hello world', 'world') true olur. PHP 7'de strpos($haystack, $needle) !== false kullanın.

str_contains büyük küçük harfe duyarlı mı?

Evet. Büyük küçük harfe duyarsız bir kontrol için iki tarafı da küçük harfe çevirin: str_contains(mb_strtolower($haystack), mb_strtolower($needle)), ya da stripos($haystack, $needle) !== false kullanın.

str_contains boş bir dizge için neden true döndürüyor?

Her dizge boş dizgeyi içerir, bu yüzden str_contains('abc', '') true döndürür. Aranan değer kullanıcı girdisinden geliyorsa önce boş olmadığını kontrol edin.

PHP'de bir dizgenin bir şeyle başlayıp başlamadığını veya bitip bitmediğini nasıl kontrol ederim?

İkisi de PHP 8.0'da eklenen str_starts_with($s, 'http') ve str_ends_with($s, '.pdf') kullanın. str_contains() gibi büyük küçük harfe duyarlıdırlar ve bir bool döndürürler.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA