Ho un comando, ad esempio 'git diff' che emette un risultato colorato quando lo eseguo dal terminale.Esegui un comando colorato da uno script php
Ora, voglio chiamare questo comando da uno script php CLI e visualizzare nella console il risultato colorized. Ho provato con exec(), system(), passthru() ma in tutti i casi l'output è stato convertito in testo in bianco e nero.
C'è un modo per preservare il colore del risultato standard? In caso contrario, qualcuno sa perché queste informazioni vengono perse?
Solo un'idea: probabilmente è correlata all'ambiente. Un test rapido potrebbe fornire indizi: 'env> env_a.out && php -r 'system (" env ");' > env_b.out && diff env_a.out env_b.out' – gamen
Ho provato il tuo test, una volta che entrambi i file ENV sono stati riordinati, il diff è solo questo: 'SHLVL = 1 contro SHLVL = 2' – jeanmonod
Che simile? Sono sorpreso di essere onesto. Forse fornire ulteriori dettagli sul tuo ambiente sarebbe utile per la tua domanda, oltre a semplificare il problema provando ad emettere un colore da solo ('php -r 'printf ("% c [32mGreen% c [0m \ n ", 27 , 27); '') piuttosto che invocare un comando come git. – gamen