Документация для разработчиков
Темная тема

translit

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

result_type
CUtil::translit(
	string str,
	string lang,
	array params ()
);

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

Параметры

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

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

<?
$name = "Текст*89";
$arParams = array("replace_space"=>"-","replace_other"=>"-");
$trans = Cutil::translit($name,"ru",$arParams);
echo '<pre>';
var_dump($trans);
echo '</pre>';
?>


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Александр Артамонов
Сообщение не промодерировано, возможны ошибки и неточности.
Код
function translitName(string $name, int $iblockId = 0): string
{
    static $cachedIblockFields;
    $name = trim($name);
    if(!$iblockId){
        return \Cutil::translit($name, 'ru');
    }
    if(!isset($cachedIblockFields[$iblockId])) {
        $cachedIblockFields[$iblockId] = \CIBlock::GetFields($iblockId);
    }
    $iblockFields = $cachedIblockFields[$iblockId];
    if(!$iblockFields or $iblockFields['CODE']['IS_REQUIRED'] != 'Y'){
        return '';
    }
    $translitted = \Cutil::translit($name, 'ru', [
        'max_len' => $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_LEN'],
        'change_case' => $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_CASE'],
        'replace_space' => $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_SPACE'],
        'replace_other' => $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_OTHER']
    ]);
    return rtrim(rtrim($translitted, $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_SPACE']), $iblockFields['CODE']['DEFAULT_VALUE']['TRANS_OTHER']);
}
0
Артур Фокс
Обратите внимание, символ & функция заменяет как amp
1
Александр Киселев
Код
\Cutil::translit((string)$offer->name,"ru",["replace_space"=>"-","replace_other"=>"-"]);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх