【发布时间】:2020-02-25 09:17:42
【问题描述】:
在将生产应用程序更新到现代版本时,我必须使用旧版本的 PHP。我的 Windows 10 开发机器上安装了 PHP 7.3,但旧应用程序需要 PHP 5.5。
我的测试框架以彩色输出,这对于快速检测是否有任何测试失败很有帮助。但是,在 PHP 5.5 中,输出消息与 ANSI 代码交错,使得它们很难阅读。
PHP 7.3 可以使用 ANSI 颜色将文本呈现到控制台,但 PHP 5.5 中的相同代码在输出中生成 ANSI 序列,而不是设置颜色。如果我使用 ANSICON 而不是内置命令提示符,PHP 5.5 和 PHP 7.3 都可以彩色输出。
为什么只有 PHP 5.5 + 命令提示符无法以彩色显示的组合?
命令提示符
C:\>php55 -r "echo """\x1B[36mCyan\x1B[0m""";"
[36mCyan[0m
C:\>php73 -r "echo """\x1B[36mCyan\x1B[0m""";"
Cyan
ANSI 控制台
C:\>php55 -r "echo """\x1B[36mCyan\x1B[0m""";"
Cyan
C:\>php73 -r "echo """\x1B[36mCyan\x1B[0m""";"
Cyan
【问题讨论】:
标签: php windows-10 command-prompt php-5.5 ansi-escape