В битриксе есть много аналогов стандартных функций php, которые, на первый взгляд, могут показаться излишними. Но, как правило, ничего не делается без причины, и все такие функции имеют какие-то важные отличия. [spoiler]Многие из них сделаны для обеспечения совместимости между серверами с различными настройками, в т.ч. для обеспечения безотказной работы в разных кодировках. И, если на рядовом сайте бывает проще и надежнее (но не всегда) использовать стандартные функции, то при написании модулей их использование часто может спасти от серьезных ошибок на конфигурациях, отличных от вашей тестовой.
\Bitrix\Main\Text\String::htmlEncode, ранее htmlspecialcharsbx (php: htmlspecialchars)
Функция преобразует строку в html-безопасный вид (заменяет кавычки и пр. символы на " и пр.). После этого вы можете вставлять строку в любой атрибут html-тега, заключая ее в кавычки, в т.ч. атрибут value тега input. При использовании стандартной htmlspecialchars при работе в кодировке windows-1251 в php5.4 без явного указания кодировки в третьем параметре функции, можно потерять русский текст. htmlspecialcharsbx даже без параметров скорее всего отработает без ошибок.
\Bitrix\Main\Text\String::htmlDecode, ранее htmlspecialcharsBack (php: htmlspecialchars_decode)
Имеет действие, противоположное \Bitrix\Main\Text\String::htmlEncode и преобразует тест обратно из html-безопасного вида в html-опасный.
\Bitrix\Main\Web\Json::encode и \Bitrix\Main\Web\Json::decode (php: json_encode и json_decode)
Функции пребразуют массив php в строку json-формата и обратно. Как известно, функции json_encode и json_decode работают только с кодировкой utf-8. Заставить их работать с кодировкой windows-1251 - не самая легкая задача. Функции битрикс \Bitrix\Main\Web\Json::encode и \Bitrix\Main\Web\Json::decode решают данную проблему "из коробки", обеспечиваю совместимость. А т.к. сейчас большинство сайтов работают на технологии AJAX, при написании модулей они позволят отказаться от изобретения велосипеда.
ToUpper и ToLower (php: strtoupper и strtolower)
Преобразуют строку к верхнему или нижнему регистру соответственно. стандартные strtoupper и strtolower не работают с русским текстом в кодировке UTF-8, ToUpper и ToLower - могут.
P.S. Если вы знаете другие подобные функции-аналоги, пожалуйста, отпишитесь в комментариях.
\Bitrix\Main\Text\String::htmlEncode, ранее htmlspecialcharsbx (php: htmlspecialchars)
Функция преобразует строку в html-безопасный вид (заменяет кавычки и пр. символы на " и пр.). После этого вы можете вставлять строку в любой атрибут html-тега, заключая ее в кавычки, в т.ч. атрибут value тега input. При использовании стандартной htmlspecialchars при работе в кодировке windows-1251 в php5.4 без явного указания кодировки в третьем параметре функции, можно потерять русский текст. htmlspecialcharsbx даже без параметров скорее всего отработает без ошибок.
\Bitrix\Main\Text\String::htmlDecode, ранее htmlspecialcharsBack (php: htmlspecialchars_decode)
Имеет действие, противоположное \Bitrix\Main\Text\String::htmlEncode и преобразует тест обратно из html-безопасного вида в html-опасный.
\Bitrix\Main\Web\Json::encode и \Bitrix\Main\Web\Json::decode (php: json_encode и json_decode)
Функции пребразуют массив php в строку json-формата и обратно. Как известно, функции json_encode и json_decode работают только с кодировкой utf-8. Заставить их работать с кодировкой windows-1251 - не самая легкая задача. Функции битрикс \Bitrix\Main\Web\Json::encode и \Bitrix\Main\Web\Json::decode решают данную проблему "из коробки", обеспечиваю совместимость. А т.к. сейчас большинство сайтов работают на технологии AJAX, при написании модулей они позволят отказаться от изобретения велосипеда.
ToUpper и ToLower (php: strtoupper и strtolower)
Преобразуют строку к верхнему или нижнему регистру соответственно. стандартные strtoupper и strtolower не работают с русским текстом в кодировке UTF-8, ToUpper и ToLower - могут.
P.S. Если вы знаете другие подобные функции-аналоги, пожалуйста, отпишитесь в комментариях.
02.09.201601:0702.09.2016 01:07:06
Про \Bitrix\Main\Web\Json::encode не знал и это полезно, спасибо!
Иногда встречаются сайты на 1251.