PHP 7.2.0 Release Candidate 4 Released

mb_eregi_replace

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

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

Açıklama

string mb_eregi_replace ( string $şablon , string $yeni , string $dizge [, string $seçenek = "msri" ] )

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

Değiştirgeler

şablon

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

yeni

Yerleştirilecek metin.

dizge

İçinde şablonun aranacağı dizge.

seçenek
mb_ereg_replace() işlevindeki gibidir.

Dönen Değerler

Başarı durumunda elde edilen dizgeyle aksi takdirde FALSE ile döner.

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. Özdevinimli ö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() - mbregex işlevleri için geçerli kodlamayı dizge olarak 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
6
kirilatpillaxdotcom
5 years ago
To highlight words in multi-byte text:

<?php
$s
= 'Алабала';
$f = 'а';
echo
preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>
up
1
cat at feelthehouse dot ru
9 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
-5
its2dark2c at yahoo dot com
6 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