別のif(function_exists("my_func")) echo 'function exists';
phpファイルを使用せずに、コマンドラインで直接のように単一のphpステートメントを実行したいと思います。
どのように可能ですか?
別のif(function_exists("my_func")) echo 'function exists';
phpファイルを使用せずに、コマンドラインで直接のように単一のphpステートメントを実行したいと思います。
どのように可能ですか?
回答:
コマンドラインでPHPを実行する場合は、適切なPHPシェルであるphpshをインストールすることをお勧めします。ずっと楽しいです。
とにかく、phpコマンドには、コマンドラインからコードを実行するための2つのスイッチがあります。
-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に比べると不自然ですが、facebookで作成されたphp用の素晴らしいインタラクティブシェルをインストールしてタブ補完や履歴などを取得したくない場合は、-aを使用します。
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
私のボックス* es *(UbuntuとArchでテスト済み)のように、それがあなたのボックスで動作しない場合、おそらくPHPの設定が曖昧であるか壊れています。このコマンドを実行すると:
php -i | grep 'API'
あなたは見るべきです:
Server API => Command Line Interface
そうでない場合は、別のコマンドがCLI SAPIを提供する可能性があることを意味します。php-cliを試してください。OSで使用できるパッケージまたはコマンドの可能性があります。
あなたがない場合は、あなたのPHPのコマンドは、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
また、拡張機能がCGIまたはApache SAPIではなくCLIにロードされる可能性があることに注意してください。これは、いくつかのPHPのSAPIが異なるのphp.iniファイルを使用する可能性があるなど、/etc/php/cli/php.ini
対/etc/php/cgi/php.ini
対/etc/php/apache/php.ini
Gentooのボックスに。で使用されているiniファイルを確認します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
終了タグ「?>」はオプションですが、最後の「;」を忘れないでください。!
php -r
、あなたが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