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

  • Так. Чуть не бросил дневник :)

    Ну вот, хотел не бросать и опять сюда не пишу :( Потому, что в будние дни сил нет писать, а в выходные вот то у меня ДР, то у пасынка. То просто…

  • 46

    Дня рожденья пост. Ну ничего, мы еще позажигаем :)

  • (no subject)

    Я очень люблю конференции. Они зажигают в разработчике свечечку, которую он потом бережно несет в себе через весь год! Когда-то давно, я с завистью…

  • 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