यह लेख Bash शेल/कमांड लाइन से PHP का उपयोग करने के तरीकों को उदाहरणों के साथ त्वरित रूप से बताएगा।
PHP का उपयोग आमतौर पर वेब पर परोसे जाने वाले कंटेंट को उत्पन्न करने के लिए किया जाता है – लेकिन इसका उपयोग कमांड लाइन से भी किया जा सकता है।
यह आमतौर पर परीक्षण या PHP वातावरण के बारे में जानकारी प्राप्त करने के उद्देश्य से किया जाता है – लेकिन PHP का उपयोग कमांड-लाइन स्क्रिप्ट लिखने के लिए भी किया जा सकता है (हालांकि, फिर से, यह वास्तव में अक्सर नहीं किया जाता है – शायद इसलिए क्योंकि बेहतर विकल्प हैं)।
शेल से सीधे PHP कमांड निष्पादित करें
-r (रन) विकल्प के साथ PHP कमांड को सीधे कमांड लाइन से निष्पादित किया जा सकता है:
php -r 'phpinfo();'
ऊपर, phpinfo() फ़ंक्शन को कॉल किया जाता है। कोड की कई लाइनों को सेमीकोलन से अलग करके पास किया जा सकता है, या एक हेरेडॉक (मल्टीलाइन बैश वेरिएबल) को पाइप किया जा सकता है।
पैरामीटर/आर्गुमेंट
पैरामीटर/आर्गुमेंट को $argv वेरिएबल का उपयोग करके PHP में पास किया जा सकता है, जो कमांड लाइन से PHP निष्पादित होने पर उपलब्ध होता है।
php -r 'echo $argv[1]; echo $argv[2];' "foo" "bar"
ऊपर, पहले पैरामीटर को $argv[1] का उपयोग करके एक्सेस किया जाता है और दूसरे पैरामीटर को $argv[2] का उपयोग करके।
$argv एक सरणी है जो केवल तभी पहुंच योग्य होगी जब PHP को कमांड लाइन से कॉल किया जाए। सरणी में पहला आइटम स्क्रिप्ट को निष्पादित करने के लिए कॉल किए गए PHP निष्पादन योग्य का नाम होगा, और सरणी में बाद के आइटम क्रम में पास किए गए पैरामीटर होंगे।
स्क्रिप्ट फ़ाइल निष्पादित करें
फ़ाइल का पथ प्रदान करके PHP फ़ाइलों को कमांड लाइन से निष्पादित किया जा सकता है:
php script.php
या
php -f script.php
-f विकल्प आवश्यक नहीं है लेकिन स्पष्टता के लिए निर्दिष्ट किया जा सकता है।
PHP कमांड-लाइन विकल्पों की पूरी सूची यहां पाई जा सकती है।
पैरामीटर/आर्गुमेंट
कमांड लाइन से सीधे PHP निष्पादित करते समय, पैरामीटर्स को $argv सरणी का उपयोग करके उसी तरह एक्सेस किया जा सकता है जब स्क्रिप्ट को कमांड लाइन से चलाया जाता है।
जांचें कि कमांड लाइन से चल रहा है या नहीं
$argv की तरह, $argc केवल कमांड लाइन से चलने पर मौजूद होता है। इसमें स्क्रिप्ट को पास किए गए पैरामीटर्स/आर्गुमेंट्स की संख्या होती है।
यदि यह मौजूद है, तो आप कमांड लाइन पर चल रहे हैं!
if (isset($argc)) { // PHP was called from the command line }
STDIN/STDOUT और PHP
मानक रीडायरेक्शन का उपयोग PHP को कमांड फीड करने और डेटा प्रोसेस करने के लिए किया जा सकता है जैसे आप किसी अन्य कमांड-लाइन एप्लिकेशन के साथ करेंगे।
echo 'Green trees' | php -r 'echo file_get_contents("php://stdin");'
ऊपर, टेक्स्ट ‘Green trees’ को PHP में पाइप किया जाता है, जो तब STDIN की फाइलें पढ़ता है और इसे वापस दोहराता है।