mb_eregi_replace

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

mb_eregi_replace使用多字节支持替换正则表达式,忽略大小写

说明

mb_eregi_replace(
    字符串 $pattern,
    字符串 $replacement,
    字符串 $string,
    ?字符串 $options = null
): 字符串|false|null

扫描 $string 中匹配 $pattern 的部分,然后将匹配的文本替换为 $replacement

参数

pattern

正则表达式模式。可以使用多字节字符。大小写将被忽略。

replacement

替换文本。

string

要搜索的 字符串

options
搜索选项。有关解释,请参阅 mb_regex_set_options()

返回值

生成的 字符串 或在发生错误时返回 false。如果 $string 对当前编码无效,则返回 null

变更日志

版本 说明
8.0.0 $options 现在可以为空。
7.1.0 该函数会检查 $string 是否对当前编码有效。
7.1.0 e 修饰符已弃用。

备注

注意:

此函数将使用内部编码或由 mb_regex_encoding() 指定的字符编码作为字符编码。

警告

在处理不受信任的输入时,切勿使用 e 修饰符。不会发生自动转义(如 preg_replace() 中所知)。不注意这一点很可能会在您的应用程序中创建远程代码执行漏洞。

参见

添加注释

用户贡献的注释 3 条注释

kirilatpillaxdotcom
12 年前
在多字节文本中突出显示单词

<?php
$s
= 'Алабала';
$f = 'а';
echo
preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>
cat at feelthehouse dot ru
15 年前
用于 UTF 字符的西里尔字母到拉丁字母的音译器

<?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;
}
?>
its2dark2c at yahoo dot com
12 年前
在尝试寻找从多字节 UTF-8 字符串中删除换行符的方法时,我找到了这个函数,后来才发现 POSIX 不支持换行符,所以我无法删除它们。我尝试过以下示例:\r\n、\\r\\n、(\\r\\n) (\\r|\\n)。

但没有结果。
所以,因为我想得到一个类似 mb_nl2br() 的简单函数,我为 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);
}
?>

注意:进行了适度的单元测试,并更改为其他编码。
To Top