О web-разработке
и даже немного больше...

htmlspecialcharsbx

Давайте поговорим о данной функции, а так же о причине её появления в системе битрикс. В PHP существует встроенная функция htmlspecialchars которая предназначена для преобразования спец символов в так называемые html-сущности. Дело в том, что с выходом PHP версии 5.4 кое-что в данной функции изменилось, а именно — значение третьего параметра по умолчанию. Основная задача этого параметра это указание кодировки передаваемой функции строки. Теперь значением третьего параметра по умолчанию стала кодировка UTF-8.

Ничего плохого про кодировку UTF-8 не скажу, так же как и про функцию htmlspecialchars, т.к. если поменяли кодировку по умолчанию, значит так было нужно. Однако для системы битрикс это не пошло на руку по той причине, что если передавать строку с нелатинскими символами в иной кодировке, не передавая параметр кодировки, то функция возвращала пустую строку. Как вы можете представить, проблема ощутимая, т.к. в системе данная функция используется довольно часто.

Решение данной проблемы разработчики увидели в добавлении новой функции под названием htmlspecialcharsbx в главный модуль начиная с версии 11.5.9, таким образом, уже с 12-й версии битрикса заменен вызов стандартной функции htmlspecialchars.

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

function htmlspecialcharsbx($string, $flags=ENT_COMPAT){
	return htmlspecialchars($string, $flags, (defined("BX_UTF")? "UTF-8" : "ISO-8859-1"));
}

Таким образом, если константа BX_UTF была определена перед обращением к функции, то будет использоваться кодировка UTF-8 в ином случае ISO-8859-1.

Функция htmlspecialcharsbx описывается в файле:
/bitrix/modules/main/classes/general/update_log.php

Опубликован: 06.01.2015 г.

См. также:

«Не удалось установить соединение с сервером. Проверьте …».
Получение Email-адреса покупателя в заказе (Bitrix D7)
Работа с URL-адресами в Bitrix D7
Работа с купонами в Bitrix API
Добавляем пункт меню для списков в админке Битрикс
Диалоговые окна в Bitrix API
Создание инфоблока при установке модуля
Создание копии корзины из заказа на Bitrix D7

Комментарии

  1. Максим Зеленкин пишет:

    Спасибо, прочитал!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта