Tengo un comando, por ejemplo 'git diff' que da salida a un resultado coloreado cuando lo ejecuto desde el terminal.Ejecutar un comando coloreado desde un script php
Ahora, quiero llamar a ese comando desde un script CLI php y mostrar en la consola el resultado coloreado. Lo he intentado con exec(), system(), passthru() pero en todos los casos el resultado se ha convertido en texto simple en blanco y negro.
¿Hay alguna manera de preservar el color del resultado estándar? Si no, ¿alguien sabe por qué se pierde esta información?
Solo una idea: probablemente esté relacionado con la variable del entorno. Una prueba rápida podría proporcionar pistas: 'env> env_a.out && php -r 'system (" env ");' > env_b.out && diff env_a.out env_b.out' – gamen
Intento su prueba, una vez que ambos archivos env se reordenan, la diferencia es solo así: 'SHLVL = 1 contra SHLVL = 2' – jeanmonod
¿Eso similar? Estoy sorprendido de ser honesto. Tal vez proporcionar más detalles acerca de su entorno sería útil en su pregunta, así como también simplificar el problema al intentar generar primero un color ('php -r 'printf ("% c [32mGreen% c [0m \ n ", 27] , 27); '') en lugar de invocar un comando como git. – gamen