mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strposBir dizgenin içinde başka bir dizgeye ilk rastlanılan noktanın indisini döndürür

Açıklama

mb_strpos(
    string $samanlık,
    string $iğne,
    int $başlangıç = 0,
    ?string $kodlama = null
): int|false

Bir dizgenin içinde başka bir dizgeye ilk rastlanılan noktanın indisini döndürür.

Karakter sayısına dayalı olarak güvenilir bir çok baytlı strpos() işlemi yürütür. iğne'nin ilk karakterinin yeri samanlık dizgesinin ilk karakterine göre hesaplanır. İlk karakterin indisi 0'dır.

Bağımsız Değişkenler

samanlık

İlk iğne'nin aranacağı dizge.

iğne

samanlık içinde ilki aranacak dizge. strpos() işlevinden farklı olarak sayısal değerler karakterin sıra değeri değildir.

başlangıç

samanlık içinde aramanın başlatılacağı konum. Belirtilmezse 0 kullanılır. Negatif değer dizgenin sonundan itibaren sayılır.

kodlama

kodlama bağımsız değişkeninde karakter kodlaması belirtilir. Belirtilmediği takdirde veya null ise dahili karakter kodlaması kullanılır.

Dönen Değerler

İlk iğne'nin samanlık içinde bulunduğu yerin indisi ile döner. Eğer samanlık içinde iğne yoksa false döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 iğne artık boş dizge kabul ediyor.
8.0.0kodlama artık null olabiliyor.
7.1.0 başlangıç artık negatif olabiliyor.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 3 notes

up
1
stestagg at talk21 dot com
17 years ago
It appears that the $offset value is a character count not a byte count.  (This may seem obvious but it isn't explicitly stated)
up
-26
stestagg at talk21 dot com
17 years ago
a sample mb_str_replace function:

function mb_str_replace($haystack, $search,$replace, $offset=0,$encoding='auto'){
    $len_sch=mb_strlen($search,$encoding);
    $len_rep=mb_strlen($replace,$encoding);
   
    while (($offset=mb_strpos($haystack,$search,$offset,$encoding))!==false){
        $haystack=mb_substr($haystack,0,$offset,$encoding)
            .$replace
            .mb_substr($haystack,$offset+$len_sch,1000,$encoding);
        $offset=$offset+$len_rep;
        if ($offset>mb_strlen($haystack,$encoding))break;
    }
    return $haystack;
}
up
-53
stestagg at talk21 dot com
17 years ago
sorry, my previous post had an error.  replace the 1000 with strlen($haystack) to handle strings longer than 1000 chars.

btw. This is an issue with the mbstring functions.  you can't specify the $encoding without specifying a $length, thus this reduces the functionality of mb_substr compared to substr
To Top