Поиск по сайту Подписаться Реклама

Яндекс цитированияИнтернет-магазин контактных линз

blog o_0 ИгрыAdventure Island 4Bio-ship PaladinChess 3dBattle ChessFull Contact CurlingAleste. Fullmetal Figher Ellinorрекламные агентства.СофтNESamp 0.4P2K Easy Tool 4.1Sjboy Emulator beta 4SHOUTCast ServerDAEMON Tools 4.09Nimo Codec Pack 5.0 Build 9 Beta 1темы на windows xp скачать бесплатноСтатьиЗахват с видеокассет или советы по перезаписи VHS на DVD (2007 г.)Фильтры для удаления помех с видеокассет (2004 г.)Проблема "больших" винчестеров на старых платах (2002 г.)Стандартные форматы бумаги и величины масштабированияСвойства CSSАрхитектура игровой приставки Денди (Dendy) Вкусное700! игр для сотовых телефонов700! игр для сотовых телефоновПакет из 700 игр для мобильников! Преимущественно адаптированных для Siemens, но многие идут и на телефонах других марок. 64 мегабайта отборного…Pico Drive 1.35Pico Drive 1.35Эмулятор SEGA для смартфонов, разработанные на базе Symbian 60 3rd edition (OS9.1).Формат: SIS.Устанавливаешь эмулятор, закидываешь на сотку ромы...CS Yazzle 4.2.2CS Yazzle 4.2.2CS Yazzle (Язл, Яззле, Яззл), на настоящий момент, считается лучшей программой для анализа сайта, его продвижения в сети и оптимизации. А так же,...CS Sape Master 1.2CS Sape Master 1.2CS Sape Master представляет собой программный комплекс, предназначенный для работы с биржей ссылок SAPE и позволяющий упростить некоторые повседн...
www.Grand-Casino.com
www.Grand-Casino.com

Полный спектр лучших азартных игр: Рулетка, Покер, Блэкджек, Видео Покер, Игровые автоматы, Слоты, Кено... Наличие системы контроля честности во всех азартных играх казино. Возможность начать игру - на интерес (без денег)!!! Большое количество способов пополнения игрового счета и вывода выигрыша: Webmoney, Яндекс.Деньги, Кредитные карты, SMS платежи…

Играть в Grand Casino                                 Скачать Grand Casino

PHP и UTF-8. Часть 1

utf-8При разработке многоязычных сайтов для HTML-страниц наиболее удобней и предпочтительней использовать кодировку UTF-8, обеспечивающую поддержку всех или почти всех существующих языков и кодирующую ASCII-символы (латинский алфавит, цифры и специальные символы) одним байтом, а национальные алфавиты — несколькими. Таким образом, кодировка UTF-8 имеет переменную физическую длину каждого символа. В связи с этим иногда возникают проблемы при программировании мультиязычных сайтов.

К примеру, в языке программирования PHP функции strlen и substr выдают некорректные результаты, если в строке имеются символы национального алфавита (поскольку предназначены для работы с однобайтовой кодировкой). Конечно же, в PHP существуют такие функции как mb_strlen и mb_susbtr, специально предназначенные для работы с мультибайтовыми строками. Но, по умолчанию поддержка Multibyte String Functions в PHP выключена, что автоматически ограничивает выбор хостинга для проектируемого сайта. Кроме того, при подключении модуля mb_string указывается набор поддерживаемых языков. А потому существует вероятность, что требуемого Вам языка может не оказаться в списке поддерживаемых.

Впрочем, существует другое, более удобное и гибкое решение проблемы. Воспользовавшись функциями PCRE, корректно воспринимающими кодировку UTF-8, можно написать свои функции utf8_strlen и utf8_substr:

function utf8_strlen($s)
{
    return preg_match_all('/./u', $s, $tmp);
}

function utf8_substr($s, $offset, $len = 'all')
{
    if ($offset<0) $offset = utf8_strlen($s) + $offset;
    if ($len!='all')
    {
        if ($len<0) $len = utf8_strlen($s) - $offset + $len;
        $xlen = utf8_strlen($s) - $offset;
        $len = ($len>$xlen) ? $xlen : $len;
        preg_match('/^.{' . $offset . '}(.{0,'.$len.'})/us', $s, $tmp);
    }
    else
    {
        preg_match('/^.{' . $offset . '}(.*)/us', $s, $tmp);
    }
    return (isset($tmp[1])) ? $tmp[1] : false;
}

Взято с http://www.controlstyle.ru/

Выложено: 11.01.2007