Дикс
30.12.2009, 09:22
изобрел такой велосипед:
function randomize($msg = '', $enc = 'utf-8')
{
if($msg == '')
return 1;
$arr = array(
'й' => 'и',
'у' => 'y',
'к' => 'k',
'е' => 'e',
'н' => 'H',
'х' => 'x',
'ы' => 'bl',
'в' => 'B',
'а' => 'a',
'р' => 'p',
'о' => 'o',
'с' => 'c',
'м' => 'M',
'т' => 'T',
'Т' => 'T',
);
$msg = mb_convert_encoding($msg, 'windows-1251', $enc);
$newMsg = '';
$len = strlen($msg);
for($i = 0; $i < $len; $i++)
{
$winChar = mb_convert_encoding($msg[$i], $enc, 'windows-1251');
if($winChar == ' ')
$newMsg .= (rand(0, 1))? ' ' : ' ';
else
$newMsg .= (isset($arr[$winChar]))? $arr[$winChar] : $winChar;
}
return $newMsg;
}
$message = randomize($message);
с русскими символами работает нормально, заменяет их на английские эквиваленты
а что обычно делают с сообщениями на английском?
в голову приходит только менять регистр и добавлять пробелы
function randomize($msg = '', $enc = 'utf-8')
{
if($msg == '')
return 1;
$arr = array(
'й' => 'и',
'у' => 'y',
'к' => 'k',
'е' => 'e',
'н' => 'H',
'х' => 'x',
'ы' => 'bl',
'в' => 'B',
'а' => 'a',
'р' => 'p',
'о' => 'o',
'с' => 'c',
'м' => 'M',
'т' => 'T',
'Т' => 'T',
);
$msg = mb_convert_encoding($msg, 'windows-1251', $enc);
$newMsg = '';
$len = strlen($msg);
for($i = 0; $i < $len; $i++)
{
$winChar = mb_convert_encoding($msg[$i], $enc, 'windows-1251');
if($winChar == ' ')
$newMsg .= (rand(0, 1))? ' ' : ' ';
else
$newMsg .= (isset($arr[$winChar]))? $arr[$winChar] : $winChar;
}
return $newMsg;
}
$message = randomize($message);
с русскими символами работает нормально, заменяет их на английские эквиваленты
а что обычно делают с сообщениями на английском?
в голову приходит только менять регистр и добавлять пробелы