मैं if(function_exists("my_func")) echo 'function exists';
कमांड लाइन के साथ सीधे एक php स्टेटमेंट को निष्पादित करना चाहूंगा, बिना सेपरेट php फ़ाइल का उपयोग किए बिना।
यह कैसे संभव है ?
मैं if(function_exists("my_func")) echo 'function exists';
कमांड लाइन के साथ सीधे एक php स्टेटमेंट को निष्पादित करना चाहूंगा, बिना सेपरेट php फ़ाइल का उपयोग किए बिना।
यह कैसे संभव है ?
जवाबों:
यदि आप कमांड लाइन में PHP करने जा रहे हैं, तो मैं आपको phpsh, एक सभ्य PHP शेल स्थापित करने की सलाह देता हूं । यह बहुत अधिक मजेदार है।
वैसे भी, कमांड लाइन से कोड निष्पादित करने के लिए 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";'
ऊपर दिए गए PHP कमांड को आउटपुट no
और रिटर्न चाहिए 0
जैसा कि आप देख सकते हैं:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
एक और मजेदार स्विच है php -a :
-a Run as interactive shell
यह phpsh की तुलना में लंगड़ा की तरह है , लेकिन अगर आप टैब पूरा करने, इतिहास, और इसी तरह से प्राप्त करने के लिए फेसबुक द्वारा बनाई गई php के लिए भयानक इंटरैक्टिव शेल स्थापित नहीं करना चाहते हैं , तो -a का उपयोग करें :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
यदि यह आपके बॉक्स पर मेरे बॉक्स * es * ( उबंटू और आर्क पर परीक्षण ) पर काम नहीं करता है , तो संभवतः आपका PHP सेटअप फ़र्ज़ी या टूट गया है । यदि आप यह आदेश चलाते हैं:
php -i | grep 'API'
आपको देखना चाहिए :
Server API => Command Line Interface
यदि आप नहीं करते हैं , तो इसका मतलब है कि शायद एक और कमांड CLI SAPI प्रदान करेगा । Php-cli को आज़माएं, हो सकता है कि यह एक पैकेज या आपके OS में उपलब्ध कमांड हो।
यदि आप देखते हैं कि आपका 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
इसके अलावा, ध्यान दें कि यह संभव है कि एक एक्सटेंशन सीएलआई में लोड हो और सीजीआई या अपाचे एसएपीआई में न हो। ऐसा नहीं है कि कई पीएचपी SAPIs अलग php.ini फ़ाइलों का उपयोग होने की संभावना है , जैसे /etc/php/cli/php.ini
बनाम /etc/php/cgi/php.ini
बनाम /etc/php/apache/php.ini
एक Gentoo बॉक्स पर। पता करें कि किस इनआई फ़ाइल का उपयोग किया जाता है php -i | grep ini
।
कमांड लाइन पर:
php -i | grep sourceguardian
यदि यह वहां है, तो आपको कुछ पाठ मिलेगा। यदि नहीं, तो आपको एक चीज़ नहीं मिलेगी।
.php
फाइल में PHP कोड को सहेजे बिना ? "
आप उपयोग कर सकते हैं :
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
संक्षिप्त टैग " <! = " भी उपयोगी हो सकता है:
echo '<?= function_exists("foo") ? "yes" : "no";' | php
echo '<?= 8+7+9 ;' | php
Tha समापन टैग "?>" वैकल्पिक है, लेकिन अंतिम मत भूलना ";" !
php -r
आपको PHP टैग खोलने के बारे में चिंता करने की आवश्यकता नहीं है।
कमांड लाइन से PHP का उपयोग करना
का उपयोग " के बजाय ' जब -r साथ CLI संस्करण का उपयोग कर खिड़कियों पर
php -r "echo 1"
-- सही बात
php -r 'echo 1'
- गलत है
PHP Parse error: syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1