पर समकक्ष लिनक्स $_SERVER["_"]
पर PHP दुभाषिया निष्पादन योग्य पथ (उदाहरण के लिए /usr/bin/php -r 'echo $_SERVER["_"];'
/usr/bin/php
प्रिंट करेगा) पर समतुल्य होगा। PHP 5.3 $_SERVER["_"]
के साथ Windows XP पर NULL
है।
उत्तर
PHP के साथ ऐसा करने के लिए कुछ भी नहीं है। यह खोल है जो उस पर्यावरण चर को परिभाषित करता है। पीएचपी बस इसे
उठाता है उदाहरण के लिए, here देखें:
खोल कुछ डिफ़ॉल्ट खोल चर होता है; पीएस 2 उनमें से एक है। अन्य उपयोगी खोल चर सेट या कॉर्न खोल में इस्तेमाल किया जाता है:
- _ (अंडरस्कोर) - एक बाहरी कमांड खोल द्वारा निष्पादित किया जाता है, यह करने के लिए नई प्रक्रिया के वातावरण में सेट किया गया है निष्पादित आदेश का मार्ग। इंटरैक्टिव उपयोग में, यह पैरामीटर पैरेंट खोल में पिछले कमांड के अंतिम शब्द में भी सेट किया गया है।
- ...
मुझे लगता है कि विंडोज में अपने सबसे अच्छे शॉट एक आंतरिक समारोह लिखने के लिए है। जैसे
PHP_FUNCTION(get_php_path)
{
char path[MAX_PATH];
int result;
if (zend_parse_parameters_none() == FAILURE)
return;
result = GetModuleFileNameA(NULL, path, MAX_PATH);
if (result == 0)
RETURN_FALSE;
if (result == MAX_PATH) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Path is too large");
RETURN_FALSE;
}
RETURN_STRINGL(path, result, 1);
}
उदाहरण:
>php -r "echo get_php_path()"; D:\Users\Cataphract\Documents\php-trunk\Debug_TS\php.exe
मुझे लगता है कि आप सीएलआई मोड में चल रहे PHP को संदर्भित करते हैं।
मैंने अभी विंडोज 7 पर सीएलआई PHP 5.3 में इसका परीक्षण किया है, और वास्तव में ऐसा लगता है कि मौजूदा स्क्रिप्ट के तहत चल रहे PHP निष्पादन योग्य को खोजने का कोई तरीका नहीं है ($_SERVER["_"]
अनुक्रमणिका उपलब्ध नहीं है, न ही कोई अन्य है परिवर्तनीय जिसमें निष्पादन योग्य पथ शामिल है)।
इसके अलावा, PHP मैनुअल में Command Line PHP on Windows पृष्ठ पर इस मुद्दे पर कुछ भी कहना नहीं है। argv
और php_sapi_name()
कुछ भी प्रकट नहीं करते हैं, या तो। ,
$php_exe_path = $_SERVER["PHPEXE"];
नहीं
वास्तव में महान:
SET PHPEXE=C:\php\bin\php.exe
c:\php\bin\php.exe -f scriptname.php
और फिर PHP स्क्रिप्ट में:
केवल एक चीज है जो मन में आता स्क्रिप्ट कॉल करने से पहले एक वातावरण चर की स्थापना की एक kludgy समाधान नहीं है लेकिन मेरे पास कोई बेहतर विचार नहीं है ....
हालांकि सही नहीं है, तो आप इसे आजमा सकते हैं:
$_SERVER['phprc'] . 'php.exe'
जो आप की तरह
सी कुछ देना होगा: \ Program Files \ पीएचपी \ php.exe
दिलचस्प के लिए काफी विकल्प मिल गया है, लेकिन मैं CLI मोड में इस चर नहीं मिल रहा है (पीएचपी 5.3 विंडोज 7 पर) क्या आप वाकई इस सर्वर सॉफ्टवेयर या कुछ द्वारा निर्धारित एक वातावरण चर नहीं है? –
अजीब, यह एक ताजा CLI मोड स्थापना है कि मैं में PHPRC चर पाया था:। Http://www.php.net/manual/en/configuration.php (नोट में:/ – Jamescun
यह एक वातावरण चर हो रहा है) है कि चेतावनी के साथ, यह अभी भी कुछ इंस्टॉल में उपलब्ध (, हो सकता है हालांकि मेरे XAMPP लाइट पर नहीं) –
नहीं php.exe खोजने के लिए एक वास्तविक समाधान है, लेकिन आप हो सकता है include_path
या extension_dir
का उपयोग करें और अपनी मूल निर्देशिका पर जाएं जिसमें php.exe को संग्रहीत किया जाना चाहिए। एक उदाहरण के रूप में:
echo str_replace('\ext', '', ini_get('extension_dir'));
नीचे वोट :) – 2ndkauboy
मैं $_SERVER
फेंक दिया और किसी भी स्वाद :)
array(100) {
...
["PHPBIN"]=>
string(43) "d:\openserver\modules\php\PHP-7-x64\php.exe"
["PHPDIR"]=>
string(36) "d:\openserver\modules\php\PHP-7-x64\"
["PHPRC"]=>
string(35) "d:\openserver\modules\php\PHP-7-x64"
["PHP_BIN"]=>
string(43) "d:\openserver\modules\php\PHP-7-x64\php.exe"
["PHP_BINARY"]=>
string(43) "d:\openserver\modules\php\PHP-7-x64\php.exe"
["PHP_BINDIR"]=>
string(36) "d:\openserver\modules\php\PHP-7-x64\"
["PHP_DIR"]=>
string(36) "d:\openserver\modules\php\PHP-7-x64\"
...
}
- 1. PHP: $ _SERVER चर: $ _SERVER '[' HTTP_HOST '] बनाम $ _SERVER [' SERVER_NAME ']
- 2. PHP: $ _SERVER ['REDIRECT_URL'] बनाम $ _SERVER ['REQUEST_URI']
- 3. $ _SERVER ['HTTP_HOST']
- 4. $ _SERVER ['QUERY_STRING']
- 5. $ _SERVER ['PATH_INFO'] और $ _SERVER ['ORIG_PATH_INFO'] के बीच क्या अंतर है?
- 6. $ _SERVER ['PHP_SELF'] और $ _SERVER ['SCRIPT_NAME'] के बीच क्या अंतर है?
- 7. $ _SERVER ["PHP_AUTH_USER"] और $ _SERVER ["PHP_AUTH_PW"] क्यों सेट नहीं हैं?
- 8. $ _SERVER ['DOCUMENT_ROOT'] क्रॉन
- 9. $ _SERVER ['PHP_AUTH_USER'] खाली है
- 10. $ _SERVER युद्धों का एन्कोडिंग?
- 11. क्रॉन जॉब $ _SERVER अंक
- 12. कोडिनेटर और $ _SERVER
- 13. $ _SERVER ['REMOTE_ADDR'] हमेशा जारी है()?
- 14. $ _POST बनाम $ _SERVER [ 'REQUEST_METHOD'] == 'पोस्ट'
- 15. PHP $ _SERVER ['REMOTE_ADDR'] आईपीवी 6
- 16. कितना सुरक्षित $ _SERVER ["HTTP_HOST"] है?
- 17. PHP $ _SERVER के बराबर पाइथन क्या है?
- 18. जियोआईपी और $ _SERVER ['REMOTE_ADDR'] कितना सटीक है?
- 19. isset ($ _ पोस्ट [ 'प्रस्तुत']) बनाम $ _SERVER [ 'REQUEST_METHOD'] == 'पोस्ट'
- 20. $ _SERVER ['REMOTE_ADDR'] को सत्यापित करना आवश्यक है?
- 21. $ _SESSION बनाया गया है लेकिन $ _SERVER ['HTTP_COOKIE']
- 22. $ _SERVER ['REQUEST_METHOD'] अभी भी व्यवहार्य है?
- 23. क्वेरी स्ट्रिंग्स कैप्चर करने पर $ _SERVER ['REQUEST_URI'] कितना विश्वसनीय है?
- 24. क्या $ _SERVER ['HTTP_X_REQUESTED_WITH'] PHP में मौजूद है या नहीं?
- 25. $ _SERVER ['SERVER_NAME'] जाली/फ़ेक किया जा सकता है?
- 26. क्या यह $ _SERVER ['REMOTE_ADDR'] पर भरोसा सुरक्षित है?
- 27. अपरिभाषित सूचकांक $ _SERVER का उपयोग कर त्रुटि [ 'https']
- 28. सुरक्षित PHP होस्ट नाम जानकारी - $ _SERVER ['HTTP_HOST'] वैकल्पिक
- 29. जेएसपी या जावास्क्रिप्ट PHP के $ _SERVER ["HTTP_HOST"] के बराबर है?
- 30. $ _SERVER ['REMOTE_USER'] को धोखा दिया जा सकता है?
अच्छा स्पष्टीकरण वह वहाँ क्यों Windows में नहीं है explaing नहीं के लिए धन्यवाद। –
धन्यवाद। मैं खोल के यह सुविधा नहीं जानता था। –