Заменяем ereg на preg_match
В PHP 5.3 разработчки решили, наконец, избавиться от POSIX регулярных выражений - в самом деле, зачем нужны две библиотеки для работы с регулярными выражениями, если можно обойтись одной? К тому же, POSIX регулярные выражения гораздо медленнее чем Perl совместимые регулярные выражения (PCRE).
Теперь, разработчики в срочном порядке исправляют свой код, заменяя функции ereg, eregi, ereg_replace, ereg_replacei соответствующими PCRE аналогами, благо, замена получилась довольно простой:
1. заменить ereg и eregi на preg_match, ereg_replace и ereg_replacei на preg_repalce;
2. добавить // разделители в начало и конец регулярного выражения;
3. если POSIX функция кончается на i (eregi, ereg_replacei) то добавить i в конец регулярного выражения после разделителя.
4. заменить POSIX спецсимволы соответствуюущими PCRE аналогами: [:alnum:]
- \w или [0-9a-z], [:digit:] - \d или [0-9], [:space:] - \s, [:alpha:] - [a-z]
примеры:
ereg('expression') -> preg_match('/expression/')
eregi('expression') -> preg_match('/expression/i')
eregi('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$
') -> preg_match('/^[a-z0-9][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$
/i')
Upd: оказывается шаг четвертый не обязателен - спецсимволы типа [[:alnum:]] теперь поддерживаются в PCRE!
Электронная читалка ONEXT
Приобрел электронную читалку ONEXT. Прикольное устройство, от собратьев отличается наличием WiFi и емкостным сенсорным экраном.
В принципе устройство сделано аккуратно, есть удобный кожаный футляр. Однако в процессе эксплуатации выяснилось что пользоваться встроенным браузером практически невозможно - по умолчанию браузер ведет на собственный книжный интернет-магазин. При попытки скачать что либо с альдебарана или с либрусека оказывается что попасть по мелким линкам на веб-странице практически невозможно ибо на емкостном тачскрине стилус не предусмотрен. т.е. все прелести WiFi оказываются невостребованными. Экран читалки не такой белый как у сони - скорее как у первых моделей orsio. Встроенный браузер довольно простенький, я бы даже сказал примитивный... форматы DOC и RTF не поддерживаются... Устройство работает заметно медленнее той же Orsio...
Однако самое неприятное, что когда жена скинула в память устройства книжку в формате FB2 устройство напрочь зависло и больше не отвисает. Hard Reset не помогает, попробовал перепрошить, но и с новой прошивкой устройство загружаться отказывается. Такое впечатление что устройство пытается обновить список книг и на этой операции повисает.
Придется завтра нести устройство назад в магазин. Неприятно...
P.S. Поменял устройство на PocketBook 360 - стоит он немного дороже, без WiFi и тачскрина но зато работает шустрее, понимает doc и rtf да и цвет электронной бумаге заметно белее - а это, что ни говори, в читалке самое главное.
Вертикальный текст в HTML
Как я уже писал, в HTML совершенно нет возможности размещать текст по-вертикали. Правда, сильно ограниченные возможности присутствуют в Internet Explorer, правда, у этого способа я обнаружил один баг — при предварительном просмотре печати текст оказывается зеркально отраженным, видимо, второй фильтр не применяется.
Хотелось бы найти универсальный способ отображать вертикальный текст по-вертикали во всех браузерах и по возможности без глюков. Как говорится если нельзя, но очень хочется, то можно.
Создал небольшой скрипт для отображения текста по-вертикали. Код получился сравнительно небольшим. Скрипт использует VML под IE и SVG под остальными браузерами.
Внешний вид полностью настраивается при помощи CSS и Javascript. Здесь можно скачать архив, а здесь увидеть как это работает в живую.
Выложенный пример тестировался на IE6-IE7, Firefox2, Google Crome, Opera и Safary.