Author |
Message |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Sun Aug 14, 2005 10:11 pm (написано за 1 час 27 минут 4 секунды)
Post subject: UTF8: PHP класс для обработки текста в кодировке UTF-8
|
|
PHP5 UTF-8 is a UTF-8 aware library of functions mirroring PHP's own string functions. The powerful solution/contribution for UTF-8 support in your framework/CMS, written on PHP. This package is advance of sourceforge.net/projects/phputf8 (last updated in 2007). Project has been moved to code.google.com/p/php5-utf8/
In Russian: Поддержка UTF-8 в PHP 5. Преимущества использования этого класса:- Совместимость с интерфейсом стандартных PHP функций, работающих с однобайтовыми кодировками
- Возможность работы без PHP расширений ICONV и MBSTRING, если они есть, то активно используются! Используется наиболее быстрый из доступных методов между MBSTRING, ICONV, родной реализацией на PHP и хаками.
- Полезные функции, отсутствующие в ICONV и MBSTRING
- Методы, которые принимают и возвращают строку, умеют принимать и возвращать null. Это удобно при выборках значений из базы данных.
- Несколько методов умеют обрабатывать массивы рекурсивно: convert_from(), convert_to(), strict(), is_utf8(), blocks_check(), convert_case(), lowercase(), uppercase(), unescape()
- Проверка у методов входных параметров на допустимые типы через рефлексию (можно отключить)
- Единый интерфейс и инкапсуляция, можно унаследоваться и переопределить методы
- Покрытие тестами
- PHP >= 5.3.x
. Обзор (code.google.com/p/php5-utf8/wiki/Overview)
Example: Code (php): | скопировать код в буфер обмена | $s = 'Hello, Привет'; if (UTF8::is_utf8($s)) echo (www.php.net/echo) UTF8::strlen (www.php.net/strlen)($s); |
Last edited by Rin on Wed Oct 12, 2011 5:01 pm; edited 86 times in total
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Fri Jun 15, 2007 12:05 pm (спустя 1 год 10 месяцев 13 часов 53 минуты; написано за 59 секунд)
Post subject:
|
|
Все функции для работы с UTF-8 собраны в один архив.
Last edited by Rin on Mon Aug 03, 2009 10:14 am; edited 1 time in total
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Jul 16, 2007 2:05 pm (спустя 1 месяц 1 день 1 час 59 минут; написано за 25 секунд)
Post subject:
|
|
Обновление от 2007-07-16.
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Sat Sep 08, 2007 12:52 pm (спустя 1 месяц 22 дня 22 часа 46 минут; написано за 9 секунд)
Post subject:
|
|
Обновление от 2007-09-08.
|
|
Back to top |
|
 |
iceman
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Oct 11, 2007 8:12 pm (спустя 1 месяц 3 дня 7 часов 20 минут; написано за 28 секунд)
Post subject:
|
|
в архиве чето нету файла php2js.php а в списке указан..
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Fri Oct 12, 2007 11:06 am (спустя 14 часов 53 минуты; написано за 18 секунд)
Post subject:
|
|
Обновление от 2007-10-12. (+ php2js.php)
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Sat Oct 20, 2007 4:13 pm (спустя 8 дней 5 часов 7 минут; написано за 17 секунд)
Post subject:
|
|
Обновление от 2007-10-20. (+ hyphen_words.php)
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Oct 22, 2007 5:10 pm (спустя 2 дня 56 минут; написано за 19 секунд)
Post subject:
|
|
Обновление от 2007-10-22. (+ utf8_autoconvert_request_charset.php)
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Nov 12, 2007 12:01 pm (спустя 20 дней 18 часов 50 минут; написано за 2 минуты 45 секунд)
Post subject:
|
|
Обновление от 2007-11-12.- html_template() -- Если имя метки-заменителя начинается с _SERVER или _REQUEST, то применяется htmlspecialchars($string); добавлены методы .intval() и .floatval()
- utf8_str_limit() -- Если текст содержит HTML код, теперь он НЕ вырезается автоматически
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Nov 19, 2007 6:51 am (спустя 6 дней 18 часов 49 минут; написано за 23 секунды)
Post subject:
|
|
Огромное спасибо! Реально нужные вещи....
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Nov 19, 2007 10:17 am (спустя 3 часа 26 минут; написано за 1 минуту 4 секунды)
Post subject:
|
|
Обновление от 2007-11-19.- utf8_autoconvert_request_charset() -- добавлена перекодировка массива $_FILES.
Кстати, побочным положительным эффектом функции является защита от XSS атаки с непечатаемыми символами на уязвимые PHP функции.
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Dec 14, 2007 9:55 am (спустя 24 дня 23 часа 38 минут; написано за 1 минуту)
Post subject:
|
|
Ну ребята.... Да у вас тут кладезь мудростей прям!!!! Огромное спасибо!!! Главное идея ;)
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Jan 08, 2008 10:19 am (спустя 25 дней 23 минуты; написано за 16 секунд)
Post subject:
|
|
Большое спасибо!
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Thu Feb 21, 2008 5:03 pm (спустя 1 месяц 13 дней 6 часов 43 минуты; написано за 7 минут 47 секунд)
Post subject:
|
|
Обновление от 2008-02-21. Из того, что вспомнил:- censure() -- новая версия антиматного фильтра (forum.dklab.ru/viewtopic.php?p=136749)
- cp1251_to_utf8_recursive() -- новая функция
- html_template() -- теперь пустые таги автоматически не вырезаются
- hyphen_words() -- добавлена обработка слов со знаком ударения
- is_utf8() -- добавлен второй параметр $is_strict (строгая проверка диапазона ASCII?)
- strip_tags_smart() (forum.dklab.ru/viewtopic.php?t=19849) -- корректная обработка внутри тагов <pre></pre>
- utf8_autoconvert_request_charset() -- добавлен параметр $is_hex2bin (Декодировать HEX-данные типа 0xd09ec2a0d0bad0be?)
- utf8_check() -- добавлен второй параметр $is_strict (строгая проверка диапазона ASCII?)
- utf8_strlen() -- оптимизация
Last edited by Rin on Fri Feb 22, 2008 4:02 pm; edited 3 times in total
|
|
Back to top |
|
 |
Maus
Модератор

Joined: 29 Jun 2003
Posts: 8151
Карма: 272 поощрить/наказать
Location: пос. Омсукчан Магаданской области
|
Posted: Thu Feb 21, 2008 9:50 pm (спустя 4 часа 47 минут; написано за 18 секунд)
Post subject:
|
|
Rin
Мм, а можно более информативный комментарий?
|
|
Back to top |
|
 |
eternalko
Участник форума
Joined: 06 Jan 2008
Posts: 34
Карма: 0 поощрить/наказать
|
Posted: Wed Mar 26, 2008 4:23 pm (спустя 1 месяц 4 дня 18 часов 33 минуты; написано за 25 секунд)
Post subject:
|
|
Супер! Только бы комментарии поинформативней (:
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Fri Apr 25, 2008 1:14 pm (спустя 29 дней 20 часов 51 минуту; написано за 1 минуту 45 секунд)
Post subject:
|
|
Обновление от 2008-04-25- html_words_highlight() исправлена ошибка, добавлена оптимизация
- utf8_convert_case() исправлена ошибка
- php2js() символ квотирования по умолчанию -- двойная кавычка вместо одинарной (стандарт JSON)
- strip_tags_smart() Пробелы и переносы строк форматируется по-умолчанию.
Чтобы исключить форматирование, необходимо установить параметр $is_format_spaces = FALSE. - ucs2_to_utf8() Новая функция. Преобразует строку из кодировки UCS-2 в UTF-8, без использования iconv (основной PHP-код -- Юрий Насретдинов)
- utf8_unescape() Функция может работать без использования библиотеки iconv.
|
|
Back to top |
|
 |
Shulman Alexandr (Lex)
Заглянувший
Joined: 20 May 2008
Posts: 4
Карма: 1 поощрить/наказать
|
Posted: Thu May 22, 2008 2:51 pm (спустя 27 дней 1 час 37 минут; написано за 15 секунд)
Post subject:
|
|
спасибо за подборку. хорошая баблиотека
|
|
Back to top |
|
 |
cevek
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jun 04, 2008 12:39 pm (спустя 12 дней 21 час 47 минут; написано за 5 секунд)
Post subject: utf8_strpos
|
|
function utf8_strpos($haystack, $needle, $offset = 0){ # get substring (if isset offset param) $offset = ($offset<0) ? 0 : $offset; if ($offset>0){ preg_match('/^.{' . $offset . '}(.*)/us', $haystack, $dummy); $haystack = (isset($dummy[1])) ? $dummy[1] : ''; } # get relative pos $p = strpos($haystack, $needle); if ($haystack=='' or $p===false) return false; $r = $offset; $i = 0; # calc real pos while($i<$p){ if (ord($haystack[$i])<128) { # ascii symbol $i = $i + 1; } else { # non-ascii symbol with variable length # (handling first byte) $bvalue = decbin(ord($haystack[$i])); $i = $i + strlen(preg_replace('/^(1+)(.+)$/', '\1', $bvalue)); } $r++; } return $r; }
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Thu Jun 05, 2008 1:03 pm (спустя 1 день 24 минуты; написано за 36 секунд)
Post subject:
|
|
cevek
 Code (php): | скопировать код в буфер обмена | function utf8_strpos($haystack, $needle, $offset = null) { if ($offset === null or $offset < 0) $offset = 0; if (function_exists (www.php.net/function_exists)('mb_strpos')) return mb_strpos (www.php.net/mb_strpos)($haystack, $needle, $offset, 'utf-8'); if (function_exists (www.php.net/function_exists)('iconv_strpos')) return iconv_strpos($haystack, $needle, $offset, 'utf-8'); if (! function_exists (www.php.net/function_exists)('utf8_strlen')) include_once 'utf8_strlen.php'; $byte_pos = $offset; do if (($byte_pos = strpos (www.php.net/strpos)($haystack, $needle, $byte_pos)) === false) return false; while (($char_pos = utf8_strlen(substr (www.php.net/substr)($haystack, 0, $byte_pos++))) < $offset); return $char_pos; } |
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Thu Jun 05, 2008 5:52 pm (спустя 4 часа 48 минут; написано за 1 минуту 55 секунд)
Post subject:
|
|
Обновление от 2008-06-05- Func.php -- Добавлен класс-загрузчик
- utf8_strpos() -- Добавлена новая функция
- censure() -- Добавлено исключение для слова "Hyundai" :)
- utf8_str_limit() -- Если длина "хвоста", оставшегося после обрезки текста, меньше $tail_min_length, то текст возвращается без изменений
- strip_tags_smart() -- Улучшена обработка ошибок функций preg_*()
- html_words_highlight() -- Исправлена ошибка
|
|
Back to top |
|
 |
Bolzamo
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jun 11, 2008 4:18 pm (спустя 5 дней 22 часа 26 минут; написано за 3 минуты 18 секунд)
Post subject: Косяк
|
|
Жесть вообще! Архив про UTF-8, а все комментарии на русском языке в кодировке cp1251! Да и RAR-архиватор для Open Source-подборки - нонсенс! Мне очень понравилась подборка сама по себе, авторы молодцы и очень постарались, но в GNU/Linux мне трудно с ней работать, потому как в редакторе по умолчанию стоит юникод, а добиваться поддержки rar-архивов пришлось скачиванием дополнительного софта. Взываю к вам! Используйте юникод в комментариях и открытые архиваторы(zip,gz,bz2,7z).
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Tue Jun 17, 2008 10:36 am (спустя 5 дней 18 часов 17 минут; написано за 1 минуту 20 секунд)
Post subject:
|
|
Мне так было удобнее. А у Вас есть время перевести все комментарии на английский? :)
|
|
Back to top |
|
 |
БорисК
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jun 18, 2008 11:51 am (спустя 1 день 1 час 14 минут; написано за 2 минуты 22 секунды)
Post subject: сравнительные тесты
|
|
utf8_substr($str, 0, 1000) работает 0.011384 секунд preg_match("/^.{1000}/su", $str, $matches) - 0.000136 mb_substr - 0.000048 substr (неправильно считает длину и обрезает полсимвола) - 0.000008 iconv_substr - 0.057839
|
|
Back to top |
|
 |
БориК
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jun 18, 2008 5:03 pm (спустя 5 часов 12 минут)
Post subject: еще два варианта utf8_substr
|
|
/** * Функция для быстрого примерного(!) отрезания строки в кодировке utf-8 * только для 2хбайтной кодировки, но после небольшой доработки будет работать и с 3-4хбайтной * * substr работает только с однобайтными кодировками, поэтому * - неправильно отрезает utf8-строку (в байтах, а не символах) * учитывая, что русские символы занимают 2 байта, латинские, пробел, вводимые с клавиатуры спецсимволы - 1 байт, * то опытным путем подбирается примерный коэффициент 1.8 * - последний символ может случайно отрезаться частично. Поэтому проверяем, если его код 11xxxxxx (0xC0) - отрезаем его тоже. * * Зато работает значительно быстрее любой другой функции отрезания utf-8, даже встроенных! * Примерный результат теста на shared-хостинге с PHP5 при $length = 1000 и длине входного текста (статья на русском языке) = 5000 символов: * utf8_fast_approx_substr (эта функция) - 0.000018 секунды (+ 0.000020 секунды собственно на вызов этой функции) * mb_substr (только при установленном пакете MultiByte) - 0.000048 секунды * utf8_fast_substr - 0.000126 секунды (+ 0.000020 секунды собственно на вызов этой функции) * utf8_substr - 0.011364 секунды (+ 0.000020 секунды собственно на вызов этой функции) * iconv_substr (только при установленном пакете Iconv) - 0.057839 секунды * * @param string $string входная строка в кодировке utf-8 * @param int $start начальное смещение * Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. * Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 1 - символ 'b', и т.д. * Если start отрицательный, возвращаемая подстрока начинается с start символа с конца строки string. * Например, в строке 'abcdef', в позиции -1 находится символ 'f', в позиции -2 - символ 'e', и т.д. * Если длина строки string меньше или равна start символов, возвращается FALSE. * @param int $length длина * Если length положительный, то от start будет отсчитано примерно length символов, а последующие отрезаны. * Если length отрицательный, то будет отброшено примерно length символов с конца строки string. * Если при этом позиция начала подстроки, определяемая аргументом start, находится в отброшенной части строки, возвращается пустая строка. * * @return string/boolean * * @author Boris Korobkov * @link www.ajaxforum.ru/
*/ function utf8_fast_approx_substr($string, $start, $length = null) { if (function_exists('mb_substr')) { /* только при установленном пакете MultiByte. mb_substr хоть и медленней этой функции, но зато точнее */ return mb_substr($string, $offset, $length, 'utf-8'); } $string = substr($string, (int) $start * 1.8, (int) $length * 1.8); /* если последний байт = полсимвола utf-8, удалить его */ if (ord(substr($string, -1)) & 0xC0) { $string = substr($string, 0, -1); } return $string; } /** * Функция для быстрого отрезания конца строки в кодировке utf-8 * * Примерный результат теста на shared-хостинге с PHP5 при $length = 1000 и длине входного текста (статья на русском языке) = 5000 символов: * utf8_fast_approx_substr - 0.000018 секунды (+ 0.000020 секунды собственно на вызов этой функции) * mb_substr (только при установленном пакете MultiByte) - 0.000048 секунды * utf8_fast_substr (эта функция) - 0.000126 секунды (+ 0.000020 секунды собственно на вызов этой функции) * utf8_substr - 0.011364 секунды (+ 0.000020 секунды собственно на вызов этой функции) * iconv_substr (только при установленном пакете Iconv) - 0.057839 секунды * * * @param string $string входная строка в кодировке utf-8 * @param int $length длина (положительная) * * @return string * * @author Boris Korobkov * @link www.ajaxforum.ru/
*/ function utf8_fast_substr($string, $length) { if (function_exists('mb_substr')) { /* только при установленном пакете MultiByte. mb_substr быстрее этой функции */ return mb_substr($string, 0, $length, 'utf-8'); } $pcre = sprintf("/^.{%s}/su", $length); $matches = array ( ); if (preg_match($pcre, $string, $matches)) { return $matches[0]; } else { return $string; } }
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Thu Jun 19, 2008 1:53 pm (спустя 20 часов 49 минут; написано за 2 минуты 57 секунд)
Post subject:
|
|
БориК
Насколько я помню, в библиотеке PCRE было ограничение на кол-во повторов в 65535 символов. Попробуйте отрезать рег. выражением первые 70,000 символов: /^.{70000}/su Ваша функция не совместима по параметрам с substr() и utf8_substr() из архива.
|
|
Back to top |
|
 |
БорисК
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jun 25, 2008 4:37 pm (спустя 6 дней 2 часа 44 минуты; написано за 37 секунд)
Post subject:
|
|
Да, есть ограничение на 64К. Да, другие параметры. И что?
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Jul 10, 2008 7:01 pm (спустя 15 дней 2 часа 23 минуты; написано за 39 секунд)
Post subject:
|
|
<?php Func::setPath(dirname(__FILE__) . '/func/'); $s = Func::call('html_optimize', $s); # PHP < 5.3.0 $s = Func::html_optimize($s); # PHP >= 5.3.0 Func::load('utf8_str_limit', 'strip_tags_smart'); $s = utf8_str_limit(strip_tags_smart($s), 100, null, $is_cutted); ?> Вот так делаю, а н функцию главную не может найти. Что делать?
|
|
Back to top |
|
 |
Стасон
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Aug 26, 2008 9:57 am (спустя 1 месяц 15 дней 14 часов 56 минут; написано за 23 секунды)
Post subject: супер
|
|
Пока просто скачал. Попробую, если работает, то огромное спасибо.
|
|
Back to top |
|
 |
beerman
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Aug 28, 2008 6:14 am (спустя 1 день 20 часов 16 минут; написано за 15 секунд)
Post subject:
|
|
прикрутил к drupal'у. работает
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Oct 13, 2008 12:45 pm (спустя 1 месяц 16 дней 6 часов 31 минуту; написано за 33 секунды)
Post subject:
|
|
Обновление от 2008-10-13- hyphen_words() -- добавлена возможность обрабатывать html код
- censure() -- улучшен алгоритм работы
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Nov 17, 2008 12:13 pm (спустя 1 месяц 3 дня 23 часа 27 минут; написано за 34 секунды)
Post subject:
|
|
Обновление от 2008-11-17- strip_tags_smart() -- текст форматируется только в том случае, если были вырезаны какие-либо таги.
- utf8_unescape_request() -- если в HTTP_COOKIE есть параметры с одинаковым именем, то берётся последнее значение, а не первое (так обрабатывается QUERY_STRING).
- utf8_simple_search_sql -- улучшен поиск целых слов (см. $re_utf8_no_letter_begin), функция может возвращать массив
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Dec 10, 2008 2:09 pm (спустя 23 дня 1 час 55 минут; написано за 8 секунд)
Post subject:
|
|
Благодарствую
|
|
Back to top |
|
 |
Эдуард83
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Dec 11, 2008 11:42 am (спустя 21 час 33 минуты; написано за 53 секунды)
Post subject:
|
|
function utf8_str_split($str) { // place each character of the string into and array $split=1; $array = array(); for ( $i=0; $i < strlen( $str ); ){ $value = ord($str[$i]); if($value > 127){ if($value >= 192 && $value <= 223) $split=2; elseif($value >= 224 && $value <= 239) $split=3; elseif($value >= 240 && $value <= 247) $split=4; }else{ $split=1; } $key = NULL; for ( $j = 0; $j < $split; $j++, $i++ ) { $key .= $str[$i]; } array_push( $array, $key ); } return $array; } Работает и в ПХП4 Нашёл в комментах cz.php.net/manual/ru/function.str-split.php#83331
Прошу добавить в сборку
|
|
Back to top |
|
 |
bæv
Модератор «Дзена»

Joined: 27 Aug 2003
Posts: 7275
Карма: 9993 поощрить/наказать
|
Posted: Thu Dec 11, 2008 9:18 pm (спустя 9 часов 35 минут)
Post subject:
|
|
|
|
Back to top |
|
 |
bæv
Модератор «Дзена»

Joined: 27 Aug 2003
Posts: 7275
Карма: 9993 поощрить/наказать
|
Posted: Wed Dec 17, 2008 1:50 am (спустя 5 дней 4 часа 32 минуты)
Post subject:
|
|
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Wed Dec 17, 2008 12:11 pm (спустя 10 часов 20 минут; написано за 1 минуту 36 секунд)
Post subject:
|
|
Обновление от 2008-12-17- normal/ -- добавлены скрипты для нормализации UTF-8 из mediawiki.org
- class Func -- метод Func::setPath() заменён на метод Func::add_include_path()
- utf8_preg_match_all() -- Новая функция
- utf8_str_split() -- Новая функция
- utf8_chunk_split() -- Новая функция
- php2js() -- Некоторые улучшения в коде
- utf8_unescape_request() -- Создаёт массив $_POST для нестандартных Content-Type, например, "Content-Type: application/octet-stream". Стандартный PHP 5.2.x создаёт массив только для "Content-Type: application/x-www-form-urlencoded" и "Content-Type: multipart/form-data".
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Mon Dec 22, 2008 4:00 pm (спустя 5 дней 3 часа 49 минут; написано за 46 секунд)
Post subject:
|
|
Обновление от 2008-12-22- unicode_blocks_check() -- новая функция
- utf8_chr() -- новая функция
- utf8_ord() -- новая функция
- utf16_to_utf8() -- новая функция
- ucs2_to_utf8() -- функция удалена, вместо неё используется utf16_to_utf8()
- censure() -- улучшен алгоритм работы (remove unicode combining diactrical marks)
- оптимизация и улучшения в других функциях, в т.ч. расширение диапазона юникода с UCS-2 до UTF-16!
|
|
Back to top |
|
 |
Rin
Участник форума

Joined: 01 Jun 2005
Posts: 515
Карма: 182 поощрить/наказать
Location: Москва
|
Posted: Tue Dec 30, 2008 12:02 pm (спустя 7 дней 20 часов 2 минуты; написано за 1 минуту 10 секунд)
Post subject:
|
|
Обновление от 2008-12-30, рекомендуется обновиться- utf8_unescape() -- исправлена ошибка декодирования %uXXXX в UTF-8
- utf8_escape() -- функция удалена, т.к. формат %uXXXX является устаревшим
- utf8_unescape_request() -- исправлена ошибка декодирования %uXXXX в UTF-8 (используется utf8_unescape()), оптимизация скорости
- utf8_substr_replace() -- новая функция
- utf8_casecmp() -- новая функция
- utf8_strrev() -- новая функция
- оптимизация и улучшения в других функциях
|
|
Back to top |
|
 |
atofigli
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Feb 05, 2009 3:18 am (спустя 1 месяц 5 дней 15 часов 15 минут; написано за 56 секунд)
Post subject: спасибо + вопрос по ucs2 и utf16
|
|
Господа, можно вопрос, почему процедуру конверта из ucs2 заменили utf-16. это одно и то же ?
|
|
Back to top |
|
 |
|