আমি if(function_exists("my_func")) echo 'function exists';
একটি পৃথক পিএইচপি ফাইল ব্যবহার না করে সরাসরি কমান্ড লাইনের মতো একটি একক পিএইচপি বিবৃতি কার্যকর করতে চাই ।
কিভাবে এটা সম্ভব ?
আমি if(function_exists("my_func")) echo 'function exists';
একটি পৃথক পিএইচপি ফাইল ব্যবহার না করে সরাসরি কমান্ড লাইনের মতো একটি একক পিএইচপি বিবৃতি কার্যকর করতে চাই ।
কিভাবে এটা সম্ভব ?
উত্তর:
আপনি যদি কমান্ড লাইনে পিএইচপি করতে চলেছেন তবে আমি আপনাকে পিএইচপিএস ইনস্টল করার পরামর্শ দিচ্ছি, একটি শালীন পিএইচপি শেল । এটি অনেক বেশি মজাদার।
যাইহোক, পিএইচপি কমান্ড কমান্ড লাইন থেকে কোড সম্পাদন করতে দুটি সুইচ সরবরাহ করে :
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
আপনি পিএইচপি এর -আর সুইচ ব্যবহার করতে পারেন :
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
আর একটি মজার সুইচ হ'ল পিএইচপি -a :
-a Run as interactive shell
এটি পিএইচপিএস এর সাথে তুলনা করে এক ধরণের খোঁড়া , তবে আপনি যদি ট্যাব সমাপ্তি, ইতিহাস ইত্যাদি পেতে ফেসবুক দ্বারা তৈরি পিএইচপি-র জন্য দুর্দান্ত ভয়ঙ্কর ইন্টারেক্টিভ শেলটি ইনস্টল করতে না চান তবে এই ব্যবহার করুন :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
যদি এটি আপনার বাক্সে যেমন আমার বক্স * এস * ( উবুন্টু এবং আর্কেটে পরীক্ষিত ) এর মতো কাজ না করে, তবে সম্ভবত আপনার পিএইচপি সেটআপটি অস্পষ্ট বা ভাঙ্গা । আপনি যদি এই আদেশটি চালান:
php -i | grep 'API'
আপনি উচিত দেখুন:
Server API => Command Line Interface
যদি আপনি এটি না করেন তবে এর অর্থ সম্ভবত অন্য কোনও কমান্ড সিএলআই এসপিআই সরবরাহ করবে । পিএইচপি-ক্লিমে চেষ্টা করে দেখুন, এটি কোনও প্যাকেজ বা কোনও কমান্ড আপনার OS এ উপলব্ধ।
যদি আপনি না দেখতে যে আপনার পিএইচপি কমান্ড CLI (কমান্ড লাইন ইন্টারফেস) SAPI (সার্ভার API) ব্যবহার করে, তারপর চালানো php -h | grep code
থেকে যা পাগল সুইচ জানতে - এই year- জন্য পরিবর্তন হয়নি আপনার সংস্করণ / সেটআপ কোড রান করতে পারবেন।
উদাহরণস্বরূপ আরও একটি দম্পতি, কেবল এটি আমার বাক্সগুলিতে কাজ করে তা নিশ্চিত করার জন্য:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
এছাড়াও, নোট করুন যে এটি সম্ভব যে কোনও এক্সটেনশন সিজিআইতে লোড করা হয়েছে, সিজিআই বা অ্যাপাচি এসপিআইতে নয়। সম্ভবত বেশ কয়েকটি পিএইচপি এসপিআই বিভিন্ন পিএইচপি.এন.ই ফাইল ব্যবহার করে , যেমন জেন্টু বক্সে /etc/php/cli/php.ini
বনাম /etc/php/cgi/php.ini
বনাম /etc/php/apache/php.ini
। কোন ini ফাইলটি ব্যবহার করা হয়েছে তা সন্ধান করুন php -i | grep ini
।
কমান্ড লাইনে:
php -i | grep sourceguardian
যদি এটি সেখানে থাকে তবে আপনি কিছু পাঠ্য পাবেন। যদি না হয়, আপনি একটি জিনিস পাবেন না।
.php
" পিএইচপি কোডটি ফাইলে সংরক্ষণ না করে সরাসরি কমান্ড লাইন থেকে পিএইচপি কোড চালাবেন? " এমন প্রশ্নের উত্তর দেওয়ার কথা ?
তুমি ব্যবহার করতে পার :
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
সংক্ষিপ্ত ট্যাগ " <? = " হেল্পফুলও হতে পারে:
echo '<?= function_exists("foo") ? "yes" : "no";' | php
echo '<?= 8+7+9 ;' | php
থ বন্ধ করার ট্যাগ "?>" Alচ্ছিক, তবে চূড়ান্তটি ভুলে যাবেন না ";" !
php -r
আপনাকে পিএইচপি ট্যাগ খোলার বিষয়ে চিন্তা করার দরকার নেই।
কমান্ড লাইন থেকে পিএইচপি ব্যবহার করে
ব্যবহার " পরিবর্তে ' যখন -r সঙ্গে CLI সংস্করণ ব্যবহার Windows এ
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