मैं एक एकल php बयान एक अलग php फ़ाइल का उपयोग किए बिना आदेश पंक्ति के साथ सीधे if(function_exists("my_func")) echo 'function exists';
तरह अमल करना चाहते हैं।कमांड लाइन से PHP कोड निष्पादित करने के लिए कैसे?
यह कैसे संभव है?
मैं एक एकल php बयान एक अलग php फ़ाइल का उपयोग किए बिना आदेश पंक्ति के साथ सीधे if(function_exists("my_func")) echo 'function exists';
तरह अमल करना चाहते हैं।कमांड लाइन से PHP कोड निष्पादित करने के लिए कैसे?
यह कैसे संभव है?
यदि आप कमांड लाइन में PHP करने जा रहे हैं, तो मैं आपको phpsh, a decent PHP shell इंस्टॉल करने की सलाह देता हूं। यह बहुत अधिक मजेदार है।
वैसे भी, php आदेश कमांड लाइन से कोड निष्पादित करने के लिए दो स्विच प्रदान करता है:
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
आप उपयोग कर सकते हैं php के -r जैसे स्विच:
php -r 'echo function_exists("foo") ? "yes" : "no";'
ऊपर पीएचपी आदेश ऊपर होना चाहिए उत्पादनno
और रिटर्न0
जैसा कि आप देख सकते हैं:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
एक और अजीब स्विच है -एक php: स्थापित करने के लिए अगर आप नहीं चाहते
-a Run as interactive shell
यह phpsh की तुलना में लंगड़ा के तरह है, लेकिन the awesome interactive shell for php made by facebook to get tab completion, history, and so on, फिर उपयोग -a:
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
यह मेरा बॉक्स * तों * (Ubuntu और आर्क पर परीक्षण किया) पर की तरह अपने बॉक्स पर काम नहीं करता है, तो शायद अपने PHP सेटअप अस्पष्ट या टूट रहा है। आप इस आदेश को चलाते हैं:
php -i | grep 'API'
आप देखना चाहिए:
Server API => Command Line Interface
आप नहीं करते हैं, इसका मतलब है कि शायद एक और आदेश CLI SAPI प्रदान करेगा। PHP-cli आज़माएं, शायद यह आपके ओएस में एक पैकेज या कमांड उपलब्ध है।
आप कि आपके php आदेश CLI (कमांड लाइन इंटरफेस) SAPI (सर्वर API) का उपयोग करता दिखाई देता है, तो चलाने php -h | grep code
को जो पागल स्विच पता लगाना - के रूप में इस के लिए साल की अनुमति देता है नहीं बदला है अपने संस्करण/सेटअप में कोड चलाने के लिए।
उदाहरण के एक और जोड़ी, बस यकीन है कि यह मेरी बक्से पर काम करता है बनाने के लिए:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
इसके अलावा, ध्यान दें कि यह संभव है कि एक विस्तार CLI और सीजीआई में नहीं या अपाचे SAPI में भरी हुई है।ऐसा लगता है कि कई PHP SAPI विभिन्न php.ini फ़ाइलों का उपयोग करते हैं, उदा। एक जेनेटू बॉक्स पर /etc/php/cli/php.ini
बनाम /etc/php/cgi/php.ini
बनाम /etc/php/apache/php.ini
बनाम। पता लगाएं कि कौन सी आईएनआई फ़ाइल php -i | grep ini
के साथ प्रयोग की जाती है।
कमांड लाइन पर:
php -i | grep sourceguardian
यदि यह वहाँ है, तो आप कुछ पाठ मिल जाएगा। यदि नहीं, तो आपको कोई चीज़ नहीं मिलेगी।
या तो मैं अंधा हूं या इस उत्तर के पास इस सवाल से कोई लेना देना नहीं है। इस जवाब को प्रश्न का उत्तर देने के लिए कहा गया है कि "PHP कोड को सीधे। कमांड लाइन से कैसे चलाएं, PHP कोड को '.php' फ़ाइल में सहेजे बिना? _"? – trejder
@trejder एक पल के लिए मैंने सोचा कि क्या मैंने गलत सवाल का जवाब दिया होगा, लेकिन फिर मैंने संपादन इतिहास और टिप्पणियों को देखा। यह उत्तर देता है कि ओपी को वास्तव में क्या चाहिए: यह पता लगाना कि कोई विशेष PHP एक्सटेंशन लोड किया गया था या नहीं। सवाल तब से दोहराया गया है, इसलिए अब यह इतना अच्छा नहीं है। –
फ़ंक्शन_एक्सिस्ट्स() को उपयोगकर्ता परिभाषित फ़ंक्शन वाली किसी अन्य फाइल का उपयोग किए बिना, PHP संस्करण का परीक्षण करने के अलावा, जो आप अन्य तरीकों से खोज सकते हैं, के बिना बहुत अच्छा नहीं होने वाला है। आप किस फ़ंक्शन का परीक्षण करना चाहते हैं? –
मैं इस फ़ंक्शन का परीक्षण करने के लिए देख रहा हूं: sg_load() – Steve
लगता है कि आप वास्तव में क्या चाहते हैं यह पता लगाने के लिए है कि स्रोतगार्डियन PHP एक्सटेंशन सक्षम है या नहीं? –