translit
Описание и параметры
Метод для транслитерации строки текста. Статический метод.
Параметры
Параметр | Описание |
---|---|
str | Строка текста для транслитерации |
lang | Язык с которого производится транслитерация |
params | Массив параметров:
|
Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
Баг в CUtil::Translit
Обновление ядра 14.0.11. Обнаружен баг в CUtil::Translit. Код из документации
Цитата |
---|
Евгений Баринов пишет: Да так и есть, сервер перенастроили, всем спасибо! Прошу прощения за ложную тревогу! |
Цитата |
---|
V K пишет: можете уточнить, какие конкретно настройки сервера изменили? сам бьюсь с аналогичной проблемой |
Обычно только два параметра mbstring вызывают проблемы (а, возможно, даже один из них):
В htaccess прописал
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
пробовал также писать
php_value mbstring.func_overload 0
php_value mbstring.internal_encoding CP1251
что ещё можно сделать?
PS. У меня есть ещё один сайт, почти идентичный данному, на этом же хостинге, и там всё работает вообще без mbstring в htaccess.
Цитата |
---|
Mikhail Kryachek пишет: Надо определить данное значение в рамках вирт. хоста или непосредственно настроек php |
Цитата |
---|
Евгений Семашко написал: Да, но надо помнить и что настройки php для веб сервера и командной строки различаются (например, в случае использования PHP как модуля Апача, не знаю точно как в других). |
Столкнулся ситуацией, когда нет возможности поправить глобальный конфиг PHP, а скрипт, который генерирует символьные коды, запускается из консоли.
Пришлось изобретать велосипед
Для того, чтоб работал метод Cutil::translit нужно его переопределить и сразу настроить на работу с многобайтовыми кодировками.
Создадим свой класс, унаследуем его от стандартного и переопределим в нём функции (плюс добавим своих)
Сам класс:
Вставить можно прямо в init.php (но лучше так не делать! Это плохо! Не нужно превращать init.php в помойное ведро!) или в отдельный файл, но не забыть его подключить (либо в сам скрипт, где нужно использовать транслитерацию, либо в init.php, что проще)
Теперь достаточно в скрипте, где используем транслитерацию определить
Источник
Баг в CUtil::Translit
Обновление ядра 14.0.11. Обнаружен баг в CUtil::Translit. Код из документации
Цитата |
---|
Евгений Баринов пишет: Да так и есть, сервер перенастроили, всем спасибо! Прошу прощения за ложную тревогу! |
Цитата |
---|
V K пишет: можете уточнить, какие конкретно настройки сервера изменили? сам бьюсь с аналогичной проблемой |
Обычно только два параметра mbstring вызывают проблемы (а, возможно, даже один из них):
В htaccess прописал
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
пробовал также писать
php_value mbstring.func_overload 0
php_value mbstring.internal_encoding CP1251
что ещё можно сделать?
PS. У меня есть ещё один сайт, почти идентичный данному, на этом же хостинге, и там всё работает вообще без mbstring в htaccess.
Цитата |
---|
Mikhail Kryachek пишет: Надо определить данное значение в рамках вирт. хоста или непосредственно настроек php |
Цитата |
---|
Евгений Семашко написал: Да, но надо помнить и что настройки php для веб сервера и командной строки различаются (например, в случае использования PHP как модуля Апача, не знаю точно как в других). |
Столкнулся ситуацией, когда нет возможности поправить глобальный конфиг PHP, а скрипт, который генерирует символьные коды, запускается из консоли.
Пришлось изобретать велосипед
Для того, чтоб работал метод Cutil::translit нужно его переопределить и сразу настроить на работу с многобайтовыми кодировками.
Создадим свой класс, унаследуем его от стандартного и переопределим в нём функции (плюс добавим своих)
Сам класс:
Вставить можно прямо в init.php (но лучше так не делать! Это плохо! Не нужно превращать init.php в помойное ведро!) или в отдельный файл, но не забыть его подключить (либо в сам скрипт, где нужно использовать транслитерацию, либо в init.php, что проще)
Теперь достаточно в скрипте, где используем транслитерацию определить
Источник
cutil translit не работает
Метод для транслитерации строки текста. Статический метод.
Параметры
Параметр | Описание |
---|---|
str | Строка текста для транслитерации |
lang | Язык с которого производится транслитерация |
params | Массив параметров:
|
Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Автор: albion · Опубликовано 10.06.2016 · Обновлено 12.11.2017
Начал грузить товары в каталог и заметил, что постоянно идут ошибки при загрузке. Все те товары, которые имеют название на русском языке — не в какую не хотят загружаться. Облазил интернет, но не смог найти причину, а причина оказалась банальной. Bitrix установлена с кодировкой UTF-8, а файлы, которые подгружаю имеют кодировку Win-1251. Перевел файл в кодировку UTF-8 и все прекрасно заработало.
$from)
$search[$lang][$from] = $trans_to[$i];
>
$defaultParams = array(
«max_len» => 100,
«change_case» => ‘L’, // ‘L’ — toLower, ‘U’ — toUpper, false — do not change
«replace_space» => ‘_’,
«replace_other» => ‘_’,
«delete_repeat_replace» => true,
«safe_chars» => »,
);
foreach($defaultParams as $key => $value)
if(!array_key_exists($key, $params))
$params[$key] = $value;
$len = strlen($str);
$str_new = »;
$last_chr_new = »;
if (strlen($str_new) >= $params[«max_len»])
break;
>
Источник
cutil translit не работает
Метод для транслитерации строки текста. Статический метод.
Параметры
Параметр | Описание |
---|---|
str | Строка текста для транслитерации |
lang | Язык с которого производится транслитерация |
params | Массив параметров:
|
Примеры использования
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Автор: albion · Опубликовано 10.06.2016 · Обновлено 12.11.2017
Начал грузить товары в каталог и заметил, что постоянно идут ошибки при загрузке. Все те товары, которые имеют название на русском языке — не в какую не хотят загружаться. Облазил интернет, но не смог найти причину, а причина оказалась банальной. Bitrix установлена с кодировкой UTF-8, а файлы, которые подгружаю имеют кодировку Win-1251. Перевел файл в кодировку UTF-8 и все прекрасно заработало.
$from)
$search[$lang][$from] = $trans_to[$i];
>
$defaultParams = array(
«max_len» => 100,
«change_case» => ‘L’, // ‘L’ — toLower, ‘U’ — toUpper, false — do not change
«replace_space» => ‘_’,
«replace_other» => ‘_’,
«delete_repeat_replace» => true,
«safe_chars» => »,
);
foreach($defaultParams as $key => $value)
if(!array_key_exists($key, $params))
$params[$key] = $value;
$len = strlen($str);
$str_new = »;
$last_chr_new = »;
if (strlen($str_new) >= $params[«max_len»])
break;
>
Источник