PHP, UTF-8: седьмой этап, давайте что-нибудь сделаем с регулярными выражениями
В прошлый раз я рассматривал, по сути, самый сложный этап — замену всех вхождений $var[$index] и им подобных на вызов моей функции. В процессе замены я несколько раз корректировал заметку и доводил некоторые вещи руками.
В самой первой части я рассказывал о том как можно решить проблему К сожалению, этот «глагол» появился только в PCRE 8.10, а в самом последнем PHP, на сегодняшний момент, содержится 8.02. Как я говорил ранее, новый PCRE можно вкомпилить в PHP при помощи специального ключа. Внутренние сервисы, где я работаю, используют Поскольку мы сейчас переходим постепенно на новую версию Ubuntu (с Hardy Heron на Lucid Lynx), то часть машин у нас пока на Цапле, а часть — уже на Рыси. Это значит, что пакетов нужно будет собрать шесть. Дело это непростое. Я решил попробовать «выдрать» из внутренностей PHP модуль PCRE, переименовать его функции и константы и поставить его как простой подключаемый модуль. Мне удалось сделать, модуль «свежего PCRE» (можно скачать в разделе «Храню»). Модуль называется ygx, все функции начинаются с префикса «ygx_», константы — с «YGX_». Что это за сокращение, не спрашивайте, когда я начинал работать, я это знал, а сейчас забыл. Сложнее всего было корректно переименовать только те функции, типы, константы и так далее, которые видно в PHP, не задев всё то, что импортируется из внешней библиотеки PCRE. Ставится модуль примерно следующим образом: потом нужно прописать в php.ini строку «extension=ygx.so», перезапустить Поскольку к этому моменту все вызовы функций PCRE у меня заменены на вызовы одноимённых методов статического класса UTF, то мне нужно поменять «preg_» на «ygx_» только в одном месте — внутри методов этого класса.Что же дальше?
mkdir /tmp/pcre
cd !:1
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.bz2
tar xvfj pcre-8.10.tar.bz2
cd pcre-8.10
./configure --prefix=/usr/local/pcre-8.10 --enable-utf8 --enable-unicode-properties --disable-static
make && make install
cd -
wget /files/php_fresh_pcre.zip
unzip php_fresh_pcre.zip
phpize
./configure --with-ygx-regex=/usr/local/pcre-8.10
make && sudo make install
phpize --clean
cd ; rm -rf /tmp/pcre
Креатив: «Властелин колёс»

Как там штанга?
После последнего серьёзного отравления резко ухудшилось здоровье, я потерял в весе около 5 кг, ухудшилась выносливость. В последнее время на спортивном поприще я был занят только тем, что выравнивал результат на состояние до отравления.
Сейчас уже
Что за проект я перевожу на UTF: FAQ

Из комментариев на одном из сайтов Димы видно, что люди делают
Так что небольшое FAQ.
В: Долго ещё до конца сериала? О: Следующая часть будет последней.
B: Что за проект переводится
B: Зачем переводится? О: Все остальные внутренние сервисы «Яндекса»
B: Нельзя ли переписать это всё на другой язык, где нет проблем
В: Зачем нужно было всё автоматизировать? О:
В: Почему бы нанять сотню студентов, за копейки, чтобы они сделали замены руками? О: За этими студентами нужно проверять работу, кто это будет делать? Я за собой вычитывал исходники, распечатывал листы diff’ов, уходил
День рождения сайта
Сегодня, кстати, моему сайту исполняется 10 лет. Я планировал к этому сроку выложить старые материалы, сменить дизайн, но ничего не успел, задача перевода Вики
Буду делать потихоньку.