Отправка сообщения






Добро пожаловать!

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

Добавил: htmaker, 06.01.2015 г.
 
плохослабосойдетхорошоотлично (3 голосов, средний: 4,67 из 5)
Загрузка...

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

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

Комментарии

  • Загрузка...

Наверх