GNU/Linux >> Linux の 問題 >  >> Linux

コマンドラインから 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 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 行目のコマンド ライン コードで ';' または ',' を期待しています" ).


Linux
  1. コマンドラインからPHPでロードまたは有効化されたモジュールを一覧表示する方法

  2. コマンドラインからIcewmを再起動する方法は?

  3. コマンドラインからPerl/PHPスクリプトを実行する

  1. コマンド ラインから電子メールを送信するにはどうすればよいですか?

  2. コマンドラインでSVNにSSHパスワードを提供するにはどうすればよいですか?

  3. コマンドラインから Dropbox ファイルの URL を取得するには?

  1. コマンドラインからdmesgに書き込むにはどうすればよいですか?

  2. コマンドラインからnagiosチェックを手動で実行するにはどうすればよいですか?

  3. 「vi」のコマンドラインから行番号が表示されたファイルを開くにはどうすればよいですか?