0
想在数组列表只更换原话,目前的代码工作指望它检查全字内容和替换:(筛选确切的词不是全字
例子: -
$字符串=这是一个测试,快乐测试
它将取代“试”为T - 廷和测试为T - T的
通缉出认沽: - 只能过滤测试为T - T,忽略当过滤词与其他包括字符
代码
function filter($string) {
$wordlist = array(
'test' => 't--t'
);
foreach ($wordlist as $word => $filter) {
$word = "/{$word}/";
preg_match_all($word, $string, $matches);
foreach ($matches[0] as $bword) {
$pattern = "/{$bword}/";
$string = preg_replace($pattern, $filter, $string);
}
}
return $string;
}
echo filter($string);
我觉得模式是不正确的,能不能帮我找到正确的模式或任何工作代码applicate
不工作的非英文字符/词 – 2014-10-03 11:01:10
@Randy Suitt您的意见是utf-8?比使用'u' [modifier](http://php.net/manual/en/reference.pcre.pattern.modifiers.php):'/ \ btest \ b/u'注意,pattern和input都有如果是的话就是utf-8。或者'/ \ btest \ b/ui'用于utf-8和无格式匹配。 – 2014-10-03 11:02:51
@RandySuitt如果在编辑器中输入ASCII并输入UTF-8,则只需要utf-8对图案进行编码。 ' '/\b'.utf8_encode("wörd“)。' \ B/ui'' – 2014-10-03 11:11:35