Convert
Convert предоставляет статические методы для экранирования HTML, преобразования строк в URL-слаги, конвертации JSON и работы с переносами строк. Создавать экземпляр класса не нужно.Поддерживает
- экранирование HTML для вывода в шаблонах
- транслитерацию кириллицы и генерацию URL-слагов
- конвертацию между массивом и JSON-строкой
- преобразование переносов строк между форматами
Быстрый старт
echo Convert::sanitizeHtml($post['title']);$slug = Convert::url('Моя страница');
// 'moya-stranica'Экранирование HTML
sanitizeHtml(string $value): string
Экранирует HTML-символы для безопасного вывода в шаблоне:
echo '<h1>' . Convert::sanitizeHtml($product['title']) . '</h1>';Символы <, >, &, одинарные и двойные кавычки преобразуются в HTML-сущности. Заменяет устаревший noHTML().
URL и транслитерация
url($string, $slash = true, $cyrillic = false): string
Переводит строку в нижний регистр, транслитерирует кириллицу и удаляет недопустимые символы:
$slug = Convert::url('Моя страница');
// 'moya-stranica'По умолчанию символ / сохраняется. Чтобы запретить слеш, передайте false вторым аргументом:
$slug = Convert::url('Раздел/Страница', false);
// 'razdelstranica'Чтобы сохранить кириллицу вместо транслитерации:
$slug = Convert::url('Моя страница', false, true);
// 'моя-страница'Пробелы заменяются дефисами. Разрешены буквы, цифры, -, _ и / (если $slash = true).
translit($string)
Транслитерирует кириллицу в латиницу без дополнительной обработки строки:
echo Convert::translit('Привет');
// 'Privet'Регистр, пробелы и прочие символы сохраняются.
JSON
strToJson(string $string = ''): array
Декодирует JSON-объект или JSON-массив в массив PHP:
$meta = Convert::strToJson('{"color":"red"}');
// ['color' => 'red']
$items = Convert::strToJson('[10,20]');
// [10, 20]Для пустой строки, некорректного JSON или JSON-значения, которое не является объектом или массивом, возвращается []:
$result = Convert::strToJson('42');
// []Это также относится к JSON-строкам, логическим значениям и null.
jsonToStr(array $json = []): string
Кодирует массив в JSON без экранирования Unicode-символов, затем дополнительно экранирует кавычки и обратные косые черты:
$serialized = Convert::jsonToStr(['color' => 'red']);Результат содержит дополнительное экранирование и не является обычной JSON-строкой для прямой передачи JSON-парсеру. Метод не является обратной операцией для strToJson().
Переносы строк
Методы преобразуют переносы строк между \n, <br> и текстовой последовательностью .
nToBr($text)
Удаляет символы \r и заменяет \n на <br>:
echo Convert::nToBr($post['description']);brToN($text)
Заменяет <br> на \n.
charToBr($text)
Заменяет на <br> для вывода в HTML.
charToN($text)
Заменяет на \n.
nToChar($text)
Удаляет символы \r и заменяет \n на текстовую последовательность :
$stored = Convert::nToChar($text);brToChar($text)
Заменяет <br> на .
delChar($text)
Удаляет все вхождения из строки.