Convert


Convert предоставляет статические методы для экранирования HTML, преобразования строк в URL-слаги, конвертации JSON и работы с переносами строк. Создавать экземпляр класса не нужно.

Поддерживает

  • экранирование HTML для вывода в шаблонах
  • транслитерацию кириллицы и генерацию URL-слагов
  • конвертацию между массивом и JSON-строкой
  • преобразование переносов строк между форматами

Быстрый старт

php
echo Convert::sanitizeHtml($post['title']);
php
$slug = Convert::url('Моя страница');
// 'moya-stranica'

Экранирование HTML

sanitizeHtml(string $value): string

Экранирует HTML-символы для безопасного вывода в шаблоне:

php
echo '<h1>' . Convert::sanitizeHtml($product['title']) . '</h1>';

Символы <, >, &, одинарные и двойные кавычки преобразуются в HTML-сущности. Заменяет устаревший noHTML().

URL и транслитерация

url(string $string, bool $slash = true, bool $cyrillic = false): string

Переводит строку в нижний регистр, транслитерирует кириллицу и удаляет недопустимые символы:

php
$slug = Convert::url('Моя страница');
// 'moya-stranica'

По умолчанию символ / сохраняется. Чтобы запретить слеш, передайте false вторым аргументом:

php
$slug = Convert::url('Раздел/Страница', false);
// 'razdelstranica'

Чтобы сохранить кириллицу вместо транслитерации:

php
$slug = Convert::url('Моя страница', false, true);
// 'моя-страница'

Пробелы заменяются дефисами. Разрешены буквы, цифры, -, _ и / (если $slash = true).

translit(string $string): string

Транслитерирует кириллицу в латиницу без дополнительной обработки строки:

php
echo Convert::translit('Привет');
// 'Privet'

Регистр, пробелы и прочие символы сохраняются.

JSON

strToJson(string $string = ''): array

Декодирует JSON-строку в массив:

php
$meta = Convert::strToJson($row['meta']);

Если строка пустая или содержит невалидный JSON, возвращает [].

jsonToStr(array $json = []): string

Кодирует массив в JSON-строку:

php
$serialized = Convert::jsonToStr(['color' => 'red', 'size' => 'L']);

Возвращает строку в кодировке UTF-8 без экранирования unicode-символов.

Переносы строк

CMS хранит переносы строк в базе данных в виде HTML-сущности &#13;&#10;. Методы позволяют переводить между этим форматом, \n и <br>.

nToBr($text): string

Заменяет \n на <br>:

php
echo Convert::nToBr($post['description']);

brToN($text): string

Заменяет <br> на \n.

charToBr($text): string

Заменяет &#13;&#10; на <br> для вывода в HTML.

charToN($text): string

Заменяет &#13;&#10; на \n.

brToChar($text): string

Заменяет <br> на &#13;&#10;.

delChar($text): string

Удаляет все вхождения &#13;&#10; из строки.