На странице произошла ошибка #S51. Свяжитесь с вебмастером.На странице произошла ошибка #S51. Свяжитесь с вебмастером. PHP 5.6 и PHP 7 на русском: Функция mb_eregi_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

mb_eregi_replace

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

mb_eregi_replaceОсуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

Описание

string mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option = "msri" ] )

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Шаблон регулярного выражения. Могут использоваться многобайтовые символы. Регистр будет игнорироваться.

replace

Текст замены.

string

Строка string для поиска.

option
option имеет то же значение, что и в mb_ereg_replace().

Возвращаемые значения

Результирующая строка string в случае успеха, или FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Внимание

Никогда не используйте модификатор e при работе с данными, полученными из недостоверных источников. Не выполняется никакого автоматического экранирования этих данных (в отличие от preg_replace()). Неучитывание данных требований, скорее всего, создаст уязвимость выполнения удаленного кода в вашем приложении.

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов

Коментарии

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;
}
?>
2008-09-13 12:27:36
http://php5.kiev.ua/manual/ru/function.mb-eregi-replace.html
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,$find0,"UTF-8");
if (
$index===false) {return;}
$str mb_substr($str0,$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
2011-08-20 19:36:32
http://php5.kiev.ua/manual/ru/function.mb-eregi-replace.html
To highlight words in multi-byte text:

<?php
$s 
'Алабала';
$f 'а';
echo 
preg_replace('/('.$f.')/iu''<b>$1</b>'$s);
?>
2012-08-02 12:52:20
http://php5.kiev.ua/manual/ru/function.mb-eregi-replace.html

    Поддержать сайт на родительском проекте КГБ