Bitrix cutil translit не работает

translit

Описание и параметры

Метод для транслитерации строки текста. Статический метод.

Параметры

Параметр Описание
str Строка текста для транслитерации
lang Язык с которого производится транслитерация
params Массив параметров:
  • max_len ограничение количества символов, по умолчанию — 100
  • change_case к какому регистру приводить: L — к нижнему, U — к верхнему, false — не изменять. По умолчанию — «L»
  • replace_space чем заменять пробел, по умолчанию: «_»
  • replace_other чем заменять прочие символы, по умолчанию: «_»
  • delete_repeat_replace удалять повторяющиеся пробелы, по умолчанию — «true»
  • safe_chars строка из символов, замена которых не производится

Примеры использования

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

Баг в 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 Массив параметров:
  • max_len ограничение количества символов, по умолчанию — 100
  • change_case к какому регистру приводить: L — к нижнему, U — к верхнему, false — не изменять. По умолчанию — «L»
  • replace_space чем заменять пробел, по умолчанию: «_»
  • replace_other чем заменять прочие символы, по умолчанию: «_»
  • delete_repeat_replace удалять повторяющиеся пробелы, по умолчанию — «true»
  • safe_chars строка из символов, замена которых не производится

Примеры использования

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Автор: 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 Массив параметров:
  • max_len ограничение количества символов, по умолчанию — 100
  • change_case к какому регистру приводить: L — к нижнему, U — к верхнему, false — не изменять. По умолчанию — «L»
  • replace_space чем заменять пробел, по умолчанию: «_»
  • replace_other чем заменять прочие символы, по умолчанию: «_»
  • delete_repeat_replace удалять повторяющиеся пробелы, по умолчанию — «true»
  • safe_chars строка из символов, замена которых не производится

Примеры использования

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Автор: 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;
>

Источник

Читайте также:  Как настроить телевизор самсунг с пультом триколор тв
Оцените статью