Последовательность символов \e
используется PHP для представления символов ESC
, 0x1B
в ASCII (и UTF-8 и других ASCII-совместимых кодировках).Полезно иметь способ представлять непечатаемых символов печатными символами (в данном случае \
и e
), потому что такие символы нелегко писать с помощью стандартной клавиатуры (не говоря уже очитать их на экране).Эти последовательности обычно называются «escape-последовательностями».
На странице руководства, на которую вы ссылаетесь, просто говорится «если вы пишете регулярное выражение и хотите найти совпадение с символом ESC
, вы можете использовать \e
, чтобы сделать это. Другие \...
последовательности аналогичным образом представляют символы и наборы символов, которые трудно непосредственно ввести.
Как вы обнаружили, ESC
имеет много применений, среди них escape-последовательности ANSI, которыеиспользуются для изменения вывода программы командной строки, обычно для добавления цветов, таких как \e[...m
, где ...
- это один или несколько Выберите коды графической передачи (найдите «SRG» на этой страницеЭто не относится к PHP, это терминал, а не исполняющая программа, которая понимает эти escape-последовательности. Любая программа (написанная на любом языке), которая выводит соответствующие последовательности байтов в совместимом терминале, будет запускать это поведение.
Вы можете легко увидеть это поведение в Bash, попробуйте выполнить следующие команды в своем терминале:
$ echo -e '\e[31mRED TEXT\e[m'
$ echo -e '\e[42mGREEN BACKGROUND\e[m'
$ echo -e '\e[5mBLINKING?\e[m'
Большинство терминалов будут отображать вывод первой команды красным, а второй - зеленым фоном.Однако многие терминалы намеренно не поддерживают мигающий текст, по той же причине, что тег HTML <blink>
обычно не поддерживается - это раздражает:)
Само собой разумеется, термин «escape-последовательность»используется в нескольких различных контекстах, чтобы означать немного разные вещи.Но в общем случае escape-последовательность - это какая-то особая последовательность символов, которая имеет специфическое значение, выходящее за рамки только самих символов.