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, $slash = true, $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)

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

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

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

JSON

strToJson(string $string = ''): array

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

php
$meta = Convert::strToJson('{"color":"red"}');
// ['color' => 'red']

$items = Convert::strToJson('[10,20]');
// [10, 20]

Для пустой строки, некорректного JSON или JSON-значения, которое не является объектом или массивом, возвращается []:

php
$result = Convert::strToJson('42');
// []

Это также относится к JSON-строкам, логическим значениям и null.

jsonToStr(array $json = []): string

Кодирует массив в JSON без экранирования Unicode-символов, затем дополнительно экранирует кавычки и обратные косые черты:

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

Результат содержит дополнительное экранирование и не является обычной JSON-строкой для прямой передачи JSON-парсеру. Метод не является обратной операцией для strToJson().

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

Методы преобразуют переносы строк между \n, <br> и текстовой последовательностью &#13;&#10;.

nToBr($text)

Удаляет символы \r и заменяет \n на <br>:

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

brToN($text)

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

charToBr($text)

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

charToN($text)

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

nToChar($text)

Удаляет символы \r и заменяет \n на текстовую последовательность &#13;&#10;:

php
$stored = Convert::nToChar($text);

brToChar($text)

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

delChar($text)

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