এই আর্টিকেলে দ্রুতভাবে ব্যাশ শেল/কমান্ড লাইন থেকে PHP ব্যবহারের পদ্ধতিগুলো উদাহরণসহ দেখানো হবে।
PHP সাধারণত ওয়েবে সার্ভ করার জন্য কন্টেন্ট জেনারেট করতে ব্যবহৃত হয় — কিন্তু এটিকে কমান্ড লাইন থেকেও ব্যবহার করা যায়।
এটি সাধারণত টেস্টিং বা PHP এনভায়রনমেন্ট সম্পর্কে জানার জন্য করা হয় — কিন্তু PHP কমান্ড-লাইন স্ক্রিপ্ট লিখতেও ব্যবহার করা যায় (যদিও এটি তত ঘটি হয় না — সম্ভবত কারণ ভালো অল্টারনেটিভ আছে)।
শেল থেকে সরাসরি PHP কমান্ড এক্সিকিউট করা
-r (run) অপশন দিয়ে PHP কমান্ড সরাসরি কমান্ড লাইন থেকে এক্সিকিউট করা যায়:
php -r 'phpinfo();'
উপরে phpinfo() ফাংশন কল করা হয়েছে। একাধিক লাইন কোড সেমিকোলন দিয়ে আলাদা করে পাস করা যায়, অথবা হেরেডক (multiline Bash variable) পাইপ করা যায়।
প্যারামিটার/আর্গুমেন্ট
$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 থেকে পড়ে সেটি রিপিট করে।