?

Log in

No account? Create an account
Main

PHP, UTF-8, итераторы вдоль строки

Евгений Степанищев (aka bolk) продолжает писать заметки о портировании php приложения на UTF-8.
Обновлю свою запись со списком статей. Обращаю внимание на последние статьи про итераторы. Доступ к символам UTF-8 строки несколько более сложный и медленный, чем в обычной однобайтовой строке, поскольку длина символа в байтах не одинакова, и то, что байт является продолжением предыдыущего мы можем узнать по 10 в старших битах, т.е. $b & 192 == 128. Таким образом усложняется и просто перемещение от символа к символу, и доступ по индексу $s[$i] -- мы не можем знать заранее правильного смещения нужного символа в байтах. Об этом и написано в последних двух заметках.

PHP и UTF-8
PHP и UTF-8: первый этап
PHP и UTF-8: второй этап (ничего не забыли?)
PHP и UTF-8: второй этап (продолжение: ничего не забыли?)
PHP и UTF-8: третий этап (создание прототипов)
PHP и UTF-8: четвёртый этап
PHP и UTF-8: четыре с половиной или некоторые функции
PHP и UTF-8: четыре и шесть десятых или ещё проблемные функции

И вот, те самые заметки про итерацию:
PHP и UTF-8: пятый этап (итератор "туда")
PHP и UTF-8: пятый с половиной этап (итератор "обратно")

Кстати узнал, что в 5.3 появились новые SPL конструкции, вот навскидку статьи про них:
SPL в PHP. Продолжение
PHP 5.3 SPL data structures: SplStack, SplHeap, SplPriorityQueue, SplDoublyLinkedList

Comments