Сайт Романа ПарпалакаБлог20100127

С Новым годом, дизайнер

27 января 2010 года, 00:15

Картинка для тех, у кого еще не закончился Новый год. Пришлось снимать на мобильник, потому что фотоаппарата с собой не было.

Если попытаться объяснить пробел перед восклицательным знаком безграмотностью дизайнера, то расположение букв вдоль странной кривой, вероятно, нужно объяснять тем, что у дизайнера свернута шея.

    1 комментарий

#.*#/u

27 января 2010 года, 19:27

У регулярных выражений PHP есть специальный модификатор u для работы со строками в кодировке UTF-8. Оказывается, вставлять этот модификатор во все подряд регулярные выражения не только бессмысленно, но и вредно. Если шаблон может работать после удаления модификатора u, то он будет работать без него быстрее, зачастую существенно быстрее.

Вообще-то, знакомства с устройством кодировки UTF-8 достаточно, чтобы понять, почему строки в этой кодировке обрабатываются медленнее. Однако я не сопоставил этот факт с тем, что неоправданное употребление модификатора u может сильно замедлить регулярное выражение, и обнаружил такое замедление случайно.

Когда же модификатор u необходим? Только тогда, когда в регулярном выражении указывается количество символов или в квадратных скобках присутствуют символы, не входящие в нижнюю половину таблицы ASCII.

В процессе оптимизации можно попытаться изменить регулярное выражение и убрать из него модификатор u.

Как всегда, лучше проверять на практике необходимость модификатора u в каждом конкретном регулярном выражении и его влияние на время выполнения скрипта.

    Оставить комментарий
Поделиться
Записи