Ich habe einen Befehl, zum Beispiel 'git diff', die ein koloriertes Ergebnis ausgeben, wenn ich es aus dem Terminal ausführen.Führen Sie einen eingefärbten Befehl aus einem PHP-Skript
Nun möchte ich diesen Befehl von einem CLI-PHP-Skript aufrufen und in der Konsole das eingefärbte Ergebnis anzeigen. Ich habe versucht mit exec(), system(), passthru(), aber in jedem Fall wurde die Ausgabe in einfachen schwarzen und weißen Text umgewandelt.
Gibt es eine Möglichkeit, die Farbe des Standardergebnisses zu erhalten? Wenn nicht, weiß jemand, warum diese Informationen verloren gehen?
Nur eine Idee: es ist wahrscheinlich Umwelt-Variable verwandt. Ein schneller Test könnte Hinweise liefern: 'env> env_a.out && php -r 'system (" env ");' > env_b.out && diff env_a.out env_b.out' – gamen
Ich versuche Ihren Test, einmal beide env-Datei neu geordnet, das diff ist nur so: 'SHLVL = 1 gegen SHLVL = 2' – jeanmonod
Das ähnlich? Ich bin überrascht, ehrlich zu sein. Vielleicht wäre es hilfreich, in Ihrer Frage weitere Details zu Ihrer Umgebung bereitzustellen und das Problem zu vereinfachen, indem Sie zuerst versuchen, eine Farbe selbst auszugeben ('php -r 'printf ("% c [32mGreen% c [0m \ n ", 27 , 27); ") anstatt einen Befehl wie git aufzurufen. – gamen