PHP Conference Nagoya 2025

stristr

(PHP 4, PHP 5, PHP 7, PHP 8)

stristrHarf büyüklüğüne duyarsız olarak ilk alt dizgeyi bulur

Açıklama

stristr(string $samanlık, string $iğne, bool $iğne_öncesi = false): string|false

samanlık dizgesinde bulunan ilk iğne dizgesiyle (iğne dahil) başlayan parçayı döndürür.

Bağımsız Değişkenler

samanlık

Girdi dizgesi.

iğne

Aranacak dizge.

PHP 8.0.0 öncesinde, iğne bir dizge değilse, bir tamsayıya dönüştürülür ve bir karakterin sıra değeri olarak uygulanırdı. PHP 7.3.0 itibariyle bu davranışın kullanımı önerilmemekte ve güvenilmemesi önerilmektedir. Amaçlanan davranışa bağlı olarak, iğne ya doğrudan dizgeye çarpıtılmalı ya da doğrudan bir chr() çağrısı yapılmalıdır.

iğne_öncesi

true ise, stristr() işlevi samanlık dizgesinde bulunan ilk iğne dizgesinde biten parçayı (iğne hariç) döndürür.

samanlık ve iğne harf büyüklüğüne duyarsız olarak ele alınır.

Dönen Değerler

iğne bulunamazsa false, aksi takdirde dizge parçası ile döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 Büyük/küçük harf dönüşümü yalnızca ASCII karakterlere (baytlara) uygulandığından yerelin setlocale() ile atanması artık gerekmiyor. ASCII olmayan karakterlerin bayt değerleri karşılaştırılıyor.
8.0.0 iğne artık boş dizge kabul ediyor.
8.0.0 iğne olarak bir tamsayı aktarımı artık kabul edilmiyor.
7.3.0 iğne olarak bir tamsayı aktarımı artık önerilmiyor.

Örnekler

Örnek 1 - stristr() örneği

<?php
$email
= 'USER@EXAMPLE.com';
echo
stristr($email, 'e'); // ER@EXAMPLE.com basar
echo stristr($email, 'e', true); // US basar
?>

Örnek 2 Bir dizgenin varlığına bakmak

<?php
$string
= 'Hello World!';
if(
stristr($string, 'earth') === FALSE) {
echo
'"earth" bu dizgede yok';
}
// çıktısı: "earth" bu dizgede yok
?>

Örnek 3 - Dizge olmayan iğne kullanımı

<?php
$string
= 'APPLE';
echo
stristr($string, 97); // 97 = küçük a
// çıktısı: APPLE
?>

Notlar

Bilginize: Bu işlev ikil dosyalarla çalışırken dosya içeriğini değiştirmez.

Ayrıca Bakınız

  • strstr() - İlk alt dizgeyi bulur
  • strrchr() - Bir dizgede belli bir karakterin sonuncusuna göre dizgenin bir parçasıyla döner
  • stripos() - Harf büyüklüğüne duyarsız olarak bir alt dizgenin ilkinin konumunu bulur
  • strpbrk() - Belirtilen karakterleri bir dizge içinde arar
  • preg_match() - Bir düzenli ifadeyi eşleştirmeye çalışır

add a note

User Contributed Notes 5 notes

up
17
dpatton.at.confluence.org
22 years ago
There was a change in PHP 4.2.3 that can cause a warning message
to be generated when using stristr(), even though no message was
generated in older versions of PHP.

The following will generate a warning message in 4.0.6 and 4.2.3:
stristr("haystack", "");
OR
$needle = ""; stristr("haystack", $needle);

This will _not_ generate an "Empty Delimiter" warning message in
4.0.6, but _will_ in 4.2.3:
unset($needle); stristr("haystack", $needle);

Here's a URL that documents what was changed:
http://groups.google.ca/groups?selm=cvshholzgra1031224321%40cvsserver
up
7
giz at gbdesign dot net
17 years ago
Just been caught out by stristr trying to converting the needle from an Int to an ASCII value.

Got round this by casting the value to a string.

<?php
if( !stristr( $file, (string) $myCustomer->getCustomerID() ) ) {
// Permission denied
}
?>
up
3
Techdeck at Techdeck dot org
22 years ago
An example for the stristr() function:

<?php
$a
= "I like php";
if (
stristr("$a", "LikE PhP")) {
print (
"According to \$a, you like PHP.");
}
?>

It will look in $a for "like php" (NOT case sensetive. though, strstr() is case-sensetive).

For the ones of you who uses linux.. It is similiar to the "grep" command.
Actually.. "grep -i".
up
-1
notepad at codewalkers dot com
19 years ago
<?php

function stristr_reverse($haystack, $needle) {
$pos = stripos($haystack, $needle) + strlen($needle);
return
substr($haystack, 0, $pos);
}
$email = 'USER@EXAMPLE.com';
echo
stristr_reverse($email, 'er');
// outputs USER

?>
up
-3
jukka
10 years ago
I think there is a bug in php 5.3 in stristr with uppercase Ä containing other character

http://pastebin.com/5bP6uztY

if you search only with täry it works, but as soon as the word is tärylä it does not. TÄRYL works fine
To Top