партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
В битриксе есть много аналогов стандартных функций 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. Если вы знаете другие подобные функции-аналоги, пожалуйста, отпишитесь в комментариях.

Чтобы оставить сообщение, авторизуйтесь, или войдите с помощью:
16.10.2017 14:00:48
\Bitrix\Main\Web\Json::encode
Про \Bitrix\Main\Web\Json::encode не знал и это полезно, спасибо!
Иногда встречаются сайты на 1251.