我正在尝试用英文字母随机替换俄语字母:
$trans = array(
'и' => 'U',
'р' => 'P',
'е' => 'E',
);
$str = 'Привет';
$res = replace($str, $trans);
echo $res;
function replace($str, $trans)
{
for ($i = 0; $i < mb_strwidth($str); $i++) {
if (rand(0,1) and isset($trans[$str[$i]])) $str[$i] = $trans[$str[$i]];
}
return $str;
}
但据我了解,只有替换不起作用,因为字母是俄语,脚本读取位置不正确。如何用俄语字母做到这一点,这样单词就不会中断?
是的,这是正确的。对于西里尔文,您需要使用类似
preg_split(). 此函数正确地将原始字符串拆分为一个字符数组(在您的情况下为字母),然后您需要处理此数组(而不是原始字符串,因为它在您的代码中):