PHP mb_eregi_replace不起作用

时间:2014-10-02 19:02:22

标签: php regex utf-8

我试图在PHP中匹配整个UTF-8字。这就是我尝试这样做的方式:

<?php

    $string = 'DS DAMAT TAKIM ELBİSE (GOLD)';
    $search = 'takım elbise';
    $replace = 'TakımElbise';

    $result = mb_eregi_replace('/\b'.$search.'\b/ui', $replace, $string);
    echo $result;

    echo preg_match('/\b'.$search.'\b/ui', $replace);
?>

但它不起作用。可能是什么问题?

注意: 我尝试在脚本开头添加这些行:

mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');

没有结果。

2 个答案:

答案 0 :(得分:0)

怎么样:

$string = 'DS DAMAT TAKIM ELBİSE (GOLD)';
//                           ^__ this isn't an I
$search = 'takım elbİse';
//                  ^__ this isn't an I
$replace = 'TakımElbise';

$result = preg_replace("/\b$search\b/ui", $replace, $string);
echo $result;

我只是将搜索字符串中的i更改为İ。您可能希望使用小写字母(我的键盘上没有)

答案 1 :(得分:0)

请参阅此处的评论:http://php.net/manual/en/function.mb-ereg-replace.php

preg_replace不同,mb_ereg_replace不使用分隔符

preg_replace的示例:

$data = preg_replace("/[^A-Za-z0-9\.\-]/","",$data);

mb_ereg_replace的示例: $data = mb_ereg_replace("[^A-Za-z0-9\.\-]","",$data);

另外,请勿使用ui标志。