Как перебирать строку UTF-8 в PHP?

Как выполнить итерацию строкового символа UTF-8 по символу с помощью индексации?

Когда вы обращаетесь к строке UTF-8 с помощью оператора скобок $ str [0] , кодированный в utf символ состоит из 2 и более элемента.

Например:

$str = "Kąt";
$str[0] = "K";
$str[1] = "�";
$str[2] = "�";
$str[3] = "t";

, но я бы хотел иметь:

$str[0] = "K";
$str[1] = "ą";
$str[2] = "t";

Это возможно с mb_substr , но это очень медленно, т.е.

mb_substr($str, 0, 1) = "K"
mb_substr($str, 1, 1) = "ą"
mb_substr($str, 2, 1) = "t"

Есть ли другой способ взаимодействия строкового символа по символу без использования mb_substr ?

41
задан czuk 8 September 2010 в 09:27
поделиться