কমান্ড লাইন থেকে কীভাবে পিএইচপি কোড চালাবেন?


163

আমি if(function_exists("my_func")) echo 'function exists';একটি পৃথক পিএইচপি ফাইল ব্যবহার না করে সরাসরি কমান্ড লাইনের মতো একটি একক পিএইচপি বিবৃতি কার্যকর করতে চাই ।

কিভাবে এটা সম্ভব ?


1
ব্যবহারকারীর সংজ্ঞায়িত ফাংশনযুক্ত অন্য কোনও ফাইল ব্যবহার না করে ফাংশন_এক্সেস্টগুলি () করা খুব ভাল হবে না, পিএইচপি সংস্করণ যা আপনি অন্যান্য উপায়ে জানতে পারেন তা পরীক্ষা করে। আপনি কোন ফাংশনটির জন্য পরীক্ষা করতে চান?
ম্যাট গিবসন

আমি এই ফাংশনটি পরীক্ষা করছি: এসজি_লোড ()
স্টিভ

2
আপনি যা চান তা মত শব্দগুলি সোর্সগার্ডিয়ান পিএইচপি এক্সটেনশন সক্ষম করা আছে কিনা তা খুঁজে পাওয়া উচিত?
ম্যাট গিবসন

2
তারপরে phpinfo () আপনাকে জানাতে হবে।
jpic

উত্তর:


256

আপনি যদি কমান্ড লাইনে পিএইচপি করতে চলেছেন তবে আমি আপনাকে পিএইচপিএস ইনস্টল করার পরামর্শ দিচ্ছি, একটি শালীন পিএইচপি শেলএটি অনেক বেশি মজাদার।

যাইহোক, পিএইচপি কমান্ড কমান্ড লাইন থেকে কোড সম্পাদন করতে দুটি সুইচ সরবরাহ করে :

-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


হতে পারে আপনার পিএইচপি সেটআপটি ভেঙে গেছে। আমি আমার উত্তরটি খুঁজে বার করার জন্য ইঙ্গিত সহ আপডেট করেছি।
jpic

পিএইচপি -a সম্পর্কে একটি নোট যুক্ত করেছেন যা আপনার পক্ষে কার্যকর হতে পারে।
jpic

6
নোট করুন যে পিএইচপিএস আর এর লেখক (ফেসবুক) দ্বারা রক্ষণাবেক্ষণ করা হয় না এবং গুগল গ্রুপের পৃষ্ঠায় কেউ বলেছিলেন যে "পিএইচপিএস সত্যিই সমর্থিত বা আর কার্যকর নয়" । উন্নত পিএইচপি কনসোলের জন্য আপনি বরিস রিপাবলকে সন্ধান করতে পারেন ।
বেন ক্র্যাসি

3

কমান্ড লাইনে:

php -i | grep sourceguardian

যদি এটি সেখানে থাকে তবে আপনি কিছু পাঠ্য পাবেন। যদি না হয়, আপনি একটি জিনিস পাবেন না।


4
হয় আমি অন্ধ বা এই উত্তরটির প্রশ্নের সাথে কোনও সম্পর্ক নেই। এই উত্তরটি কীভাবে.php " পিএইচপি কোডটি ফাইলে সংরক্ষণ না করে সরাসরি কমান্ড লাইন থেকে পিএইচপি কোড চালাবেন? " এমন প্রশ্নের উত্তর দেওয়ার কথা ?
ট্র্যাজার

15
@ ট্রেজেদার সেখানে এক মুহুর্তের জন্য আমি ভাবলাম যে আমি যদি ভুল প্রশ্নের উত্তর দিয়ে থাকি তবে আমি সম্পাদনার ইতিহাস এবং মন্তব্যগুলিতে নজর রেখেছি। এটির ওপিকে সত্যই কী প্রয়োজন দেখা দিয়েছে তার উত্তর দেয়: কোনও নির্দিষ্ট পিএইচপি এক্সটেনশন লোড হয়েছিল কিনা তা সন্ধান করে। প্রশ্নটি তখন থেকে পুনরায় সংশোধন করা হয়েছে, সুতরাং এটি এখন এতটা ফিট করে না।
ম্যাট গিবসন

3

তুমি ব্যবহার করতে পার :

 echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php

সংক্ষিপ্ত ট্যাগ " <? = " হেল্পফুলও হতে পারে:

 echo '<?= function_exists("foo") ? "yes" : "no";' | php
 echo '<?= 8+7+9 ;' | php

থ বন্ধ করার ট্যাগ "?>" Alচ্ছিক, তবে চূড়ান্তটি ভুলে যাবেন না ";" !


2
এটি 7 বছরের পুরানো স্বীকৃত উত্তরের চেয়ে বেশি সমস্যা বলে মনে হচ্ছে। ব্যবহার করে php -rআপনাকে পিএইচপি ট্যাগ খোলার বিষয়ে চিন্তা করার দরকার নেই।
miken32

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.