Ansi
in package
Низкоуровневая сборка и разбор ANSI-последовательностей терminala.
Собирает произвольные комбинации SGR-кодов (цвет, фон, начертание), 256-цветовую палитру и truecolor (RGB), гиперссылки (OSC 8), а также умеет снимать оформление (self::strip()) и обезвреживать управляющие символы во внешних данных (self::escape()) — защита от ANSI-инъекций.
Table of Contents
Constants
- RESET : mixed = "\x1b[0m"
- Последовательность сброса всех атрибутов.
Methods
- apply() : string
- Обернуть текст SGR-кодами и завершить сбросом.
- background256() : string
- SGR-подкод фона из 256-цветовой палитры.
- backgroundRgb() : string
- SGR-подкод фона в truecolor (RGB).
- color256() : string
- SGR-подкод цвета текста из 256-цветовой палитры.
- escape() : string
- Обезвредить внешние данные: убрать управляющие символы C0/C1.
- hyperlink() : string
- Кликабельная гиперссылка терминала (OSC 8).
- rgb() : string
- SGR-подкод цвета текста в truecolor (RGB).
- sequence() : string
- Собрать SGR-последовательность из кодов.
- strip() : string
- Удалить из строки все ANSI-последовательности (оформление, курсор, OSC).
Constants
RESET
Последовательность сброса всех атрибутов.
public
mixed
RESET
= "\x1b[0m"
Methods
apply()
Обернуть текст SGR-кодами и завершить сбросом.
public
static apply(string $text, int|string ...$codes) : string
Без кодов текст возвращается неизменным — лишних последовательностей нет.
Parameters
- $text : string
-
исходный текст
- $codes : int|string
-
SGR-коды оформления
Return values
string —оформленный текст
background256()
SGR-подкод фона из 256-цветовой палитры.
public
static background256(int $code) : string
Parameters
- $code : int
-
индекс палитры (0–255)
Tags
Return values
string —подкод вида 48;5;200
backgroundRgb()
SGR-подкод фона в truecolor (RGB).
public
static backgroundRgb(int $red, int $green, int $blue) : string
Parameters
- $red : int
-
красный компонент (0–255)
- $green : int
-
зелёный компонент (0–255)
- $blue : int
-
синий компонент (0–255)
Tags
Return values
string —подкод вида 48;2;255;128;0
color256()
SGR-подкод цвета текста из 256-цветовой палитры.
public
static color256(int $code) : string
Parameters
- $code : int
-
индекс палитры (0–255)
Tags
Return values
string —подкод вида 38;5;200
escape()
Обезвредить внешние данные: убрать управляющие символы C0/C1.
public
static escape(string $text) : string
Сохраняются табуляция, перевод строки и возврат каретки; символ ESC и прочие управляющие удаляются, что исключает подмену вывода терминала (ANSI-инъекции) через недоверенный ввод.
Parameters
- $text : string
-
недоверенная строка
Return values
string —безопасная для вывода строка
hyperlink()
Кликабельная гиперссылка терминала (OSC 8).
public
static hyperlink(string $url, string $label) : string
Parameters
- $url : string
-
адрес перехода
- $label : string
-
видимый текст ссылки
Return values
string —последовательность гиперссылки
rgb()
SGR-подкод цвета текста в truecolor (RGB).
public
static rgb(int $red, int $green, int $blue) : string
Parameters
- $red : int
-
красный компонент (0–255)
- $green : int
-
зелёный компонент (0–255)
- $blue : int
-
синий компонент (0–255)
Tags
Return values
string —подкод вида 38;2;255;128;0
sequence()
Собрать SGR-последовательность из кодов.
public
static sequence(int|string ...$codes) : string
Parameters
- $codes : int|string
-
SGR-коды (например
1,31,38;5;200)
Return values
string —строка вида \033[1;31m
strip()
Удалить из строки все ANSI-последовательности (оформление, курсор, OSC).
public
static strip(string $text) : string
Parameters
- $text : string
-
строка с управляющими последовательностями
Return values
string —строка без ANSI