2010-08-26 14 views
8

स्क्रिप्ट मैं PHP में shell_exec के माध्यम से चलाने के लिए कोशिश कर रहा हूँ एक पर्यावरण चर सेट करने के लिए है, जो afaik के माध्यम से किया जाता है की आवश्यकता है में कमांड लाइन वातावरण चर कैसे निर्धारित करें:पीएचपी shell_exec

export VARIABLE=value 

हालांकि, चलाने के लिए स्क्रिप्ट मैं करने को मजबूर कर रहा हूँ:

<?PHP 
$sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth"); 

यह चर हर बार जब मैं किसी भी आदेशों को चलाने के निर्यात करने के लिए थोड़े व्यर्थ तेजी।

क्या यह करने का यही एकमात्र तरीका है, या क्या मुझे एक बहुत आसान तरीका याद आ रहा है?

उत्तर

13

चूंकि पर्यावरण चर विरासत में हैं, इसलिए उन्हें अपनी स्क्रिप्ट के अंदर सेट करने से उन्हें लॉन्च किए गए आदेशों के लिए सेट कर दिया जाएगा। आपको बस putenv का उपयोग करना होगा।

putenv("VARIABLE=value"); 
6

न सिर्फ होगा:

<?PHP 
shell_exec('SOMEVAR=SOMEVAL /some/program'); 

चाल है?

यदि आप एकाधिक खोल स्क्रिप्ट चला रहे हैं, तो putenv आपका मित्र है, जैसा कि ज़ेनक ने बताया।

एक उदाहरण के साथ संपादित करें:

env.php:

<?PHP 
echo $_ENV['FOO']; 
echo "\n"; 

runenv.php:

<?PHP 
echo shell_exec('FOO=bar php env.php'); 

तो कोशिश $ php runenv.php

+0

क्यों इस से किसी भी तरह से अलग है मैं ऊपर क्या कर रहा हूँ? i.e. निर्यात VARIABLE = value && command' –

+0

यह लगभग एक ही चीज़ है। लेकिन अगर आप सिर्फ एक स्क्रिप्ट/प्रोग्राम पर पर्यावरण लागू करना चाहते हैं तो आपको निर्यात करने की आवश्यकता नहीं है। एक से अधिक और आप शायद putenv() के साथ बेहतर हो – timdev