есть форма ввода, и есть 2 массива с алфавитами
$pl = ['a','ą','b','c','ć','d','e','ę','f','g','h','i','j','k','l','ł','m','n','ń','o','ó','p','r','s','ś','t','u','w','y','z','ź,','ż'];
$pl16 = ['m','n','ń','o','ó','p','r','s','ś','t','u','w','y','z','ź,','ż','a','ą','b','c','ć','d','e','ę','f','g','h','i','j','k','l','ł'];
нужно сделать кодировку вида rot16, если я ввожу английские символы то работает отлично, все выводит, но если я в форму ввиду букву такого вида
ą
, то уже не работает. Так как буква польского алфавита состоит из 2х байтов. Как мне достать каждый символ по очереди? и заменить его? вот эта функция
function rot16($str){
$rot16 = '';
for($i = 0; $i < strlen($str); $i++){
for ($j = 0; $j < count($pl); $j++)
{
if ($str[$i] == $pl[$j]){
$res = str_replace($str[$i], $pl16[$j],$str[$i]);
}
}
$rot16 .= $res;
}
return $rot16;
}
массивы находятся в функции, и $str это входная строка из формы. Нужно вместо
$str[$i] == $pl[$j]
как то сравнить каждый символ строки, а не байт.