से रंगीन कमांड निष्पादित करें मेरे पास एक कमांड है, उदाहरण के लिए 'git diff' जो रंगीन परिणाम आउटपुट करता है जब मैं इसे टर्मिनल से चलाता हूं।एक php स्क्रिप्ट
अब, मैं उस कमांड को एक सीएलआई 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 SHLVL = 2' – jeanmonod
के समान है? मैं ईमानदार होने के लिए हैरान हूँ। शायद आपके पर्यावरण के बारे में और जानकारी प्रदान करना आपके प्रश्न में सहायक होगा, साथ ही रंग को स्वयं आउटपुट करने की कोशिश करके समस्या को सरल बनाना होगा ('php -r 'printf ("% c [32mgreen% c [0m \ n ", 27 , 27); '') गिट जैसे कमांड का आह्वान करने के बजाय। – gamen