0
我正在使用此函数替换短语中的不良词, ,但它对除UTF-8字符以外的英文字母有效。preg_replace在使用UTF-8字符时无法正常工作?
我发现\b
边界与UTF-8字符无法正常工作。 有没有其他方法可以做到这一点?
我不得不添加'\ b',因为我只需要替换确切的单词。 作为示例:不想替换popo_one
与p***o
我只需要用p***o
替换popo
。希望能够理解。
public function wordfilter($phrase) {
$filter = array('/popo\b/i','/blabla\b/i');
$replace = array('p***o','b***a');
$newphrase = preg_replace($filter, $replace, $phrase);
return $newphrase;
}
任何想法赞赏。
它工作正常,但没有。它在utf-8字符时有一些错误,例如当我尝试搜索并替换这个''/මම\ b/u''时,它也会替换这个完全出乎意料的'මමේ'。任何想法请问? – Milan 2014-09-27 02:05:02
@米兰:这是正常的,这些字符是字母(在斯里兰卡使用僧伽罗语)。 – 2014-09-27 02:54:35
Oky谢谢@卡西米尔,是的,它是僧伽罗语:) – Milan 2014-09-29 02:32:48