суббота, 18 июня 2011 г.

PHP неправильно обрезает строку

Очень часто PHP-разработчики сталкиваются с такой проблемой:
обрезав строку по длине, в конце строки появляется символ "�".

Это происходит из-за того, что строка хранится в кодировке юникода(как правило - utf-8), а функция substr работает только с "однобайтными" кодировками.

Решение - вместо substr использовать функцию mb_substr.

substr($string, $length, $count)
заменяем на
mb_substr($string, $length, $count, 'utf-8')

среда, 18 мая 2011 г.

Перевести время из одной зоны в другую

В 15-00 по времени Екатеринбурга (UTC+6) произошло некоторое событие.
В Красноярске (UTC+8) в это время уже 17-00, на два часа "больше".
Жителю Красноярска мы должны показать его местное время для этого события.

Как сделать это в C++?

Заполним структуру tmDateExternal типа tm, запишем в нее исходное время. Запишем в int nSrcTZ "смещение" UTC для исходного времени, то есть 6.
__time64_t t64date = _mkgmtime64(&tmDateExternal) - nSrcTZ*60*60;
tm tmDateLocal;
_localtime64_s( &tmDateLocal, &t64date );

Теперь в структуре tmDateLocal находится локальное время для исходного события.

вторник, 7 декабря 2010 г.

Android: как поместить ListView в ScrollView

Сталкивались ли вы с проблемой, когда на экран нужно вывести, помимо списка ListView, другие элементы, и все не умещается на экран по вертикали? Очевидное решение - "обернуть" все в ScrollView. Но здесь неожиданно мы натыкаемся на проблему.

Разработчики Андроида "запрещают" помещать ListView в ScrollView, т.к. у ListView уже есть свой скроллер.

В результате, когда пытаемся поместить ListView в ScrollView, то ListView "сворачивается", в то время, как по задумке он должен быть полностью развернут.

Для того, чтобы "развернуть" ListView, я использую такой хак:

воскресенье, 30 мая 2010 г.

Ссылка в заголовке модуля статьи: Jumi + Articles Anywhere

Как вывести статью в модуле Joomla, чтобы заголовок модуля был ссылкой на эту статью?

1. Устанавливаем Jumi, если он у вас еще не установлен - очень полезный компонент.

2. Устанавливаем Articles Anywhere, плагин для вывода статей в любом содержимом.

3. Создаем модуль Jumi, публикуем его в нужную позицию, заголовок вписываем любой, выбираем "Показать заголовок: Да".

4. В поле "Записанный код" (справа в свойствах модуля) пишем, заменив article_id на id соответствующей статьи:

<?php $module->title="{article article_id}<a href=\"{url}\">{title}</a>{/article}"; ?>
{article article_id}{text}{/article}

Готово!

Первая строка изменит заголовок модуля на текст {article article_id}<a href="{url}">{title}</a>{/article}, вторая строка - выведет содержимое статьи в тело модуля.

При отображении, плагин Articles Anywhere заменит теги в фигурных скобках на соответствующий html-код.

суббота, 29 мая 2010 г.

Зачем этот блог

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

Комментарии крайне приветствуются. Возможно, вы встретите неточности или у вас есть свои соображения на тему публикаций - оставьте комментарий, я буду очень признателен.