如何从用PHP编写的控制台命令的输出中删除所有格式

如何从用PHP编写的控制台命令的输出中删除所有格式,php,symfony,console,Php,Symfony,Console,我有一些命令将输出格式化到控制台 这些命令使用Symfony控制台组件编写,并使用格式化 在控制台中运行时,格式良好,但这些命令通常也从我编写的队列系统中运行,因此日志随后显示在HTML页面上 结果真的很难理解,因为它充满了所有在控制台上有用但在网页上读取输出时完全无用的格式化“标记” 下面是我要说的一个例子: [32mStarting command[39m [32m===========================[39m [34m[>] Analyzing Entity [39

我有一些命令将输出格式化到控制台

这些命令使用Symfony控制台组件编写,并使用格式化

在控制台中运行时,格式良好,但这些命令通常也从我编写的队列系统中运行,因此日志随后显示在HTML页面上

结果真的很难理解,因为它充满了所有在控制台上有用但在网页上读取输出时完全无用的格式化“标记”

下面是我要说的一个例子:

[32mStarting command[39m
[32m===========================[39m

[34m[>] Analyzing Entity [39m[32This is the entity[39m[34m.                                             [39m
[34m[>] Starting analyzing Entity [39m[32mThis is the entity[39m[34m.                                    [39m
[34m[>] Creating new Job for [39m[30;42This is the entity[39;49m[34m to analyze it in [39m[30;42m+1 week[39;49m[34m (Cause: The Entity is a clone of [39m[30;42Entity2[39;49m[34m).[39m
[34m[>] New Job for [39m[30;42mEntity[39;49m[34m created.                                         [39m
...
正如您所看到的,输出几乎是不可读的


在将其保存到数据库之前,如何删除其中的所有格式?

您可以使用
--无ANSI
选项禁用ANSI颜色


您也可以尝试

另一种选择是在PHP中使用某种正则表达式调用

,这将有助于在将文本输出到网页之前删除所有不需要的部分。哦,是的。。。但考虑到所有可能的变化并不是那么简单!将代码更改为使用echo sprintf(…),并完全绕过控制台输出代码。我想应该这样做。我将使用ANSI到HTML5转换器,因为我希望保持网页中的颜色,而
--没有ANSI
会简单地删除它们。谢谢你提到的奇妙的图书馆!