コマンド ラインで 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 Linux の場合)、おそらく PHP の設定が曖昧であるか壊れている .このコマンドを実行すると:
php -i | grep 'API'
すべき 参照:
Server API => Command Line Interface
しない場合 、これは、おそらく別のコマンドが CLI SAPI を提供することを意味します . php-cli を試してください。お使いの OS で利用可能なパッケージまたはコマンドである可能性があります。
そうする場合 あなたの php
を見てください コマンドは CLI (コマンドライン インターフェイス) SAPI (サーバー API) を使用し、php -h | grep code
を実行します。 クレイジーなスイッチを見つける - これは何年も変わっていないため - バージョン/セットアップでコードを実行できます。
私のボックスで動作することを確認するための別の例:
>>> 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 Linux ボックスで。 php -i | grep ini
で使用されている ini ファイルを調べる .
コマンドラインから PHP を使用する
"
を使用 '
の代わりに Windows で -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
行を閉じるセミコロンを忘れないでください (そうしないと、結果は "PHP 解析エラー:構文エラー、予期しないファイルの終わり、1 行目のコマンド ライン コードで ';' または ',' を期待しています"エム> ).