mb_eregi_replace

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

mb_eregi_replaceHarf büyüklüğüne duyarsız çok baytlı karakter destekli düzenli ifade yer değiştirmesi yapar

Açıklama

mb_eregi_replace(
    string $kalıp,
    string $yeni,
    string $dizge,
    ?string $seçenekler = null
): string|false|null

dizge içinde kalıp eşleştirilmeye çalışılır, eşleşen parça yenisi ile değiştirilir.

Bağımsız Değişkenler

kalıp

Düzenli ifade olarak kalıp. Çok baytlı karakterler kullanılabilir. Harf büyüklüğü dikkate alınmaz.

yeni

Yerleştirilecek metin.

dizge

İçinde kalıbın aranacağı dizge.

seçenekler
Arama seçenekleri. Ayrıntılar mb_regex_set_options() işlevinde bulunabilir.

Dönen Değerler

Başarı durumunda elde edilen dizgeyle aksi takdirde false ile döner. Geçerli karakter kodlamasına göre dizge geçersiz ise null döner. is returned.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 seçenekler artık null olabiliyor.
7.1.0 Geçerli karakter kodlamasına göre dizge geçersiz ise artık null dönüyor.
7.1.0 e seçeneğinin kullanımı artık önerilmiyor.

Notlar

Bilginize:

Bu işlev karakter kodlaması olarak dahili kodlamayı veya mb_regex_encoding() işlevi tarafından belirtilen karakter kodlamasını kullanır.

Uyarı

Güvenilmez girdilerle çalışırken e değiştiricisini asla kullanmayın. Otomatik önceleme yapılmayacaktır (preg_replace() işlevinde olduğu gibi). Bunu dikkate almazsanız, büyük olasılıkla uygulamanızda uzaktan kod çalıştırma açıkları oluşacaktır.

Ayrıca Bakınız

  • mb_regex_encoding() - Çok baytlı düzenli ifade işlevleri için geçerli kodlamayı dizge olarak atar/döndürür
  • mb_ereg_replace() - Çok baytlı karakter destekli düzenli ifade yer değiştirmesi yapar

add a note add a note

User Contributed Notes 3 notes

up
8
kirilatpillaxdotcom
12 years ago
To highlight words in multi-byte text:

<?php
$s
= 'Алабала';
$f = 'а';
echo
preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>
up
4
cat at feelthehouse dot ru
16 years ago
Transliterator for cyrillic-to-latin letters for UTF chars:

<?php
function do_translit($st) {
   
$replacement = array(
       
"й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n",
       
"г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'",
       
"ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r",
       
"о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e",
       
"я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t",
       
"ь"=>"\'","б"=>"b","ю"=>"yu",
       
"Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N",
       
"Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'",
       
"Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R",
       
"О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E",
       
"Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T",
       
"Ь"=>"\'","Б"=>"B","Ю"=>"YU",
    );
   
    foreach(
$replacement as $i=>$u) {
       
$st = mb_eregi_replace($i,$u,$st);
    }
    return
$st;
}
?>
up
-10
its2dark2c at yahoo dot com
13 years ago
when trying to find a way to strip newline from a multibyte UTF-8 string i got to this function just to discover later that POSIX don't "do" newline so i can't strip them, examples of what i tried are : \r\n , \\r\\n , (\\r\\n) (\\r|\\n)

and got no result
so since i wanted something like mb_nl2br() that's simple i wrote this little recursive function for UTF-8:

<?php
function mb_str_replace($find,$replace,&$str)
{
$i = mb_strpos($str,$find, 0,"UTF-8");
if (
$index===false) {return;}
$str = mb_substr($str, 0,$i).$replace.mb_substr($str, $i+mb_strlen($find,"UTF-8"),mb_strlen($str,"UTF-8"));
$this->mb_str_replace($find,$replace,$str);
}
?>

note: moderate unit tesing was done, changed to other encodings
To Top