Em vez de sequências codificadas, você deve usar uma biblioteca como o PHP Ncurses que será mais propensos a trabalhar em mais tipos de terminal
O exemplo de ncurses_color_set
:
<?php
ncurses_init();
// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
ncurses_start_color();
ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
ncurses_color_set(1);
}
// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");
// Flush output to screen
ncurses_refresh();
ncurses_end();
?>
Em ncurses_has_colors
:
Verifica se o terminal possui recursos de cor. Esta função pode ser usada para escrever programas independentes de terminal .
[ênfase minha]
Use ncurses_attr(NCURSES_A_BOLD);
para negrito. Note que esta função e as relacionadas são marcadas como experimentais.
Em ncurses_attron
Aviso Esta função é EXPERIMENTAL . O comportamento dessa função,
o seu nome ea documentação envolvente podem ser alterados sem aviso prévio
lançamento futuro do PHP. Esta função deve ser usada por sua conta e risco.
Aviso Esta função não está documentada no momento; apenas seu argumento
lista está disponível.
[ênfase deles]
Você pode encontrar outras bibliotecas. Você deve verificar se eles usam técnicas independentes de terminal. Eu encontrei vários que usam sequências codificadas em vez disso.
Observe que o equivalente da linha de comando (shell) usa tput
para ser independente do terminal. Eu incluo esta informação como ponto de partida para referência. Eles devem ser evitados.