터미널에서 실행할 때 색상이 지정된 결과를 출력하는 'git diff'와 같은 명령이 있습니다.PHP 스크립트에서 색상화된 명령을 실행하십시오.
이제 CLI PHP 스크립트에서이 명령을 호출하고 콘솔에 색칠 된 결과를 표시하고 싶습니다. 나는 exec(), system(), passthru()를 시도했지만 모든 경우 출력은 흑백 텍스트로 변환되었습니다.
표준 결과의 색상을 유지하는 방법이 있습니까? 그렇지 않은 경우 누군가이 정보가 손실되는 이유를 알고 있습니까?
그냥 아이디어입니다. 아마 환경 변수와 관련이 있습니다. 빠른 테스트는 단서를 제공 할 수 있습니다 : env> env_a.out && php -r 'system ("env"); > env_b.out && diff env_a.out env_b.out' – gamen
env 파일이 재정리 된 후 테스트를 해보십시오. diff는 다음과 같이 만됩니다. 'SHLVL = 1 to SHLVL = 2' – jeanmonod
비슷한가? 솔직히 말해서 놀랍습니다. 아마도 여러분의 환경에 대한 더 자세한 정보를 제공하는 것이 여러분의 질문에 도움이 될 것입니다. 또한 색상을 먼저 출력하려고 시도하여 문제를 단순화 할 수 있습니다 ('php -r 'printf ("% c [32mGreen % c [0m \ n", 27 , 27);''). git과 같은 명령을 호출하는 것이 아닙니다. – gamen