Задача первая - понятная: PHP: $name = "hihi!"; $len = strlen($name); //5 $pos = $len-1; echo $name{$pos}; получаем !. Если $name = "hihi", то получим i. а если PHP: $name = "Вова!"; $len = strlen($name); //9 $pos = $len-1; echo $name{$pos}; получаем !. Если $name = "вова", то получим кракозябру. Даже если пропишу PHP: $name = "Вова"; $len = strlen($name); $pos = $len-1; echo iconv("windows-1251", "UTF-8", $name{$pos}); Кирилические символы не выводятся. Я знаю, что в UTF-8 наши символы по 2 байта, а латиница по 1, и совершенно не понимаю, как мне тут вытащить символ, даже если я использую mb_strlen($name) - все равно выводится ерунда. Подскажите, или объясните пожалуйста, как извлечь кирилический символ из такой строки. уже всю голову сломал. Оч интересно.
Благодарю, добрый человек) Но если я напишу PHP: <?php $name = "Вова"; echo mb_substr($name, -2, null, 'utf-8'); // ва выведет ВА, а не В) тоже самое если просто 1 или 2, напишу -3 выведет ОВА А как вывести 1 символ по его позиции?
Хорошо, что вы сразу открыли документацию и посмотрели описание функции PHP: <?php echo mb_substr($name, 0, 1, 'utf-8'); // В echo mb_substr($name, 1, 1, 'utf-8'); // о echo mb_substr($name, 2, 1, 'utf-8'); // в echo mb_substr($name, 3, 1, 'utf-8'); // а