Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

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
Tags: development, php
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments