(PHP 5 >= 5.4.1, PHP 7, PHP 8)
mb_ereg_replace_callback — Bir düzenli ifade araması yapıp bir geriçağırım kullanarak çok baytlı yer değiştirme uygular
$kalıp
,$geriçağırım
,$dizge
,$seçenekler
= null
dizge
dizisinde kalıp
ile
eşleşmeler arar, eşleşen metni geriçağırım
işlevinin
çıktısı ile değiştirir.
mb_ereg_replace() işlevindeki
yeni
bağımsız değişkeninin yerine burada bir geriçağırım
işlevinin kullanılması dışında davranışları aynıdır.
kalıp
Düzenli ifade kalıbı.
kalıp
ta çok baytlı karakterler kullanılabilir.
geriçağırım
konu
dizgesinde eşleşen elemanları içeren bir
dizi aktarılabilen ve yerleştirilecek dizgeyi döndürecek geriçağırım
işlevi.
Genellikle mb_ereg_replace_callback() için
geriçağırım
işlevine tek bir yerde ihtiyaç
duyulur. Bu durumda,mb_ereg_replace_callback()
çağrısı içinde geriçağırımı bildirmek için anonim bir işlev kullanılabilir.
Bunu bu şekilde yaparak, çağrı için ihtiyaç duyulan tüm bilgiler
tek bir yerde elde edilebilir ve işlev isim alanı başka hiçbir yerde
kullanılmayan bir geriçağırım işlevinin adıyla karıştırılmamış olur.
dizge
Arama yapılacak dizge
seçenekler
Arama seçenekleri. Ayrıntılar için mb_regex_set_options() işlevine bakılabilir.
Başarı durumunda elde edilen dizge, hata durumunda false
döner.
dizge
geçerli kodlama için geçersizse null
döner.
Sürüm: | Açıklama |
---|---|
8.0.0 |
seçenekler artık null olabiliyor.
|
7.1.0 |
Geçerli kodlama için dizge 'nin geçerliliğine
artık bakılıyor.
|
Örnek 1 - mb_ereg_replace_callback() örneği
<?php
// bu metin 2002'de kullanıldı
// 2003'te güncellemek istiyouz
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// geriçağırım işlevi
function next_year($matches)
{
// normal olarak: $matches[0] eşleşmenin tamamını
// $matches[1] '(...)' ile sarmalanmış ilk eşleşmeyi
// içerir ve böyle devam eder.
return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
"next_year",
$text);
?>
Yukarıdaki örneğin çıktısı:
April fools day is 04/01/2003 Last christmas was 12/24/2002
Örnek 2 - Anonim işlev kullanan mb_ereg_replace_callback() örneği
<?php,
// bu metin 2002'de kullanıldı
// 2003'te güncellemek istiyouz
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
function ($matches) {
return $matches[1].($matches[2]+1);
},
$text);
?>
Bilginize:
Bu işlev karakter kodlaması olarak dahili kodlamayı veya mb_regex_encoding() işlevi tarafından belirtilen karakter kodlamasını kullanır.