<span style="font-size: 14px;">Usage: php [options] [-f] 28897b20adb25fbae118a3f80f538dec [args...]<br> php [options] -r ffbe95d20f3893062224282accb13e8f [args...]<br> php [options] [-- args...]<br> -s Display colour syntax highlighted source.<br> -w Display source with stripped comments and whitespace.<br> -f 28897b20adb25fbae118a3f80f538dec Parse 28897b20adb25fbae118a3f80f538dec.<br> -v Version number<br> -c 98953a78f52873edae60a617ec082494|28897b20adb25fbae118a3f80f538dec Look for php.ini file in this directory<br> -a Run interactively<br> -d foo[=bar] Define INI entry foo with value 'bar'<br> -e Generate extended information for debugger/profiler<br> -z 28897b20adb25fbae118a3f80f538dec Load Zend extension 28897b20adb25fbae118a3f80f538dec.<br> -l Syntax check only (lint)<br> -m Show compiled in modules<br> -i PHP information<br> -r ffbe95d20f3893062224282accb13e8f Run PHP ffbe95d20f3893062224282accb13e8f without using script tags e1cdf277302c20b8d8f1b523c1353fef<br> -h This help<br> <br> args... Arguments passed to script. Use -- args when first argument <br> starts with - or script is read from stdin<br></span> |
CLI SAPI モジュールには、実行したい PHP コードを取得するための次の 3 つの異なる方法があります:
Windows 環境では二重引用符を使用してください。Linux 環境では試してください。一重引用符を使用して完了します。
PHP に指定されたファイルを実行させます。
<span style="font-size: 14px;">php my_script.php <br/>php -f "my_script.php"<br/></span> |
上記のどちらの方法でも (-f パラメーターの有無にかかわらず)、指定された my_script.php ファイルを実行できます。実行するファイルを選択できます。指定する PHP スクリプトには、.php 拡張子を付ける必要はありません。任意のファイル名と拡張子を付けることができます。
コマンドラインから PHP コードを直接実行します。
<span style="font-size: 14px;">php -r "print_r(get_defined_constants());"<br/></span> |
この方法を使用する場合は、シェル変数の置換と引用符の使用に注意してください。
注: 上記の例をよく読んでください。コードの実行時には開始マーカーと終了マーカーはありません。 -r パラメーターを使用すると、これらのマーカーは不要になり、構文エラーが発生します。
標準入力 (stdin) 経由で実行する必要がある PHP コードを提供します。
上記の使用法により、非常に強力な機能が提供され、次の例に示すように、PHP コードを動的に生成し、コマンド ラインからこれらのコードを実行できるようになります。 上記の 3 つのコード実行方法を同時に使用することはできません。
りー
除此之外,我们还有另一个方法将 PHP 用于外壳脚本。您可以在写一个脚本,并在第一行以 #!/usr/bin/php 开头,在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码,然后为该文件设置正确的运行属性。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。
#!/usr/bin/php efed5127f36b981c4500e1430988f65b |
假设改文件名为 test 并被放置在当前目录下,我们可以做如下操作:
<span style="font-size: 14px;">$ chmod 755 test<br/>$ ./test -h -- foo<br/>array(4) {<br/> [0]=><br/> string(6) "./test"<br/> [1]=><br/> string(2) "-h"<br/> [2]=><br/> string(2) "--"<br/> [3]=><br/> string(3) "foo"<br/>}<br/></span> |
ご覧のとおり、- で始まるパラメータをスクリプトに渡すと、スクリプトは引き続き正常に実行されます。
表 23-3. コマンドラインオプション
オプション名 | 説明 |
---|---|
-s |
カラーソースを強調表示する構文とともに表示ファイル。 このパラメーターは、組み込みメカニズムを使用してファイルを解析し、HTML で強調表示されたバージョンを生成し、結果を標準出力に書き込みます。このプロセスでは、ffbe95d20f3893062224282accb13e8f [...] 1cd55414ff5abdfea5dd958e7e547fdd の HTML タグ ブロックが生成されるだけであり、HTML ヘッダーは含まれないことに注意してください。
|
-w |
は、コメントとスペースを削除したソースコードを示しています。
|
-f | 指定されたファイル名を解析して実行します。このパラメータはオプションであり、実行する必要があるファイル名を指定するだけで追加する必要はありません。 |
-v |
PHP、PHP SAPI、Zendのバージョン情報を標準出力に書き込みます。例: $ php -v PHP 4.3.0-dev (cli)、著作権 (c) 1997-2002 The PHP Group Zend Engine v1.3.0、著作権 (c) 1998-2002 Zend Technologies |
-c |
このパラメータを使用すると、php.ini ファイルが配置されるディレクトリを指定することも、php.ini ファイルを直接指定することもできます。カスタム INI ファイルの場合、そのファイル名は php.ini ではない可能性があります。例: $ php -c /custom/directory/ my_script.php $ php -c /custom/directory/custom-file.ini my_script.php |
-a | PHPを対話的に実行します。 |
-d |
このパラメータを使用して、php.ini ファイル内の変数の値を自分で設定します。構文は次のとおりです: -dconfiguration_directive[=value]例: # 値の部分を省略すると、指定された設定ディレクティブが「1」に設定されます $ php -d 最大実行時間 -r '$foo = ini_get("max_execution_time");' 文字列(1) "1" # 空の値部分を渡すと、設定ディレクティブが "" に設定されます php -d 最大実行時間= -r '$foo = ini_get("max_execution_time");' 文字列(0) "" # 構成ディレクティブは、「=」文字の後に渡されたものに設定されます $ php -d 最大実行時間=20 -r '$foo = ini_get("max_execution_time");' 文字列(2) "20" $php -d max_execution_time=doesntmakesense -r '$foo = ini_get("max_execution_time");' string(15) "doesntmakesense" |
-e | デバッガなどの拡張情報を生成します。 |
-z | Zend 拡張ライブラリをロードします。ファイル名のみが指定されている場合、PHP はシステムの拡張ライブラリのデフォルト パス (Linux システムでは、通常、このパスは /etc/ld.so.conf によって指定されます) から拡張ライブラリをロードしようとします。ファイル名を絶対パスで指定した場合、拡張ライブラリへのシステムのデフォルトのパスは使用されません。相対パスでファイル名を指定した場合、PHP は現在のディレクトリを基準とした相対的な拡張子のみをロードしようとします。 |
-l |
このパラメータは、指定された PHP コードの構文チェックを行う便利な方法を提供します。成功すると、「 このパラメータでは致命的なエラー (未定義の関数など) をチェックすることはできません。致命的なエラーを検出したい場合は、-f パラメータを使用してください。
|
-m |
このパラメータを使用すると、PHP は組み込みおよびロードされた PHP モジュールと Zend モジュールを出力します: $ php -m [PHPモジュール] XML トークナイザー 標準 セッション ポジックス ピークレ 過負荷 mysql mbstring ctype [Zend モジュール] |
-i | このコマンドラインパラメータは phpinfo() 関数を呼び出し、結果を出力します。 PHP が正常に動作しない場合は、php を実行することをお勧めします。 -i コマンドを使用して、情報テーブルの前または対応する場所にエラー メッセージが出力されているかどうかを確認します。出力コンテンツは HTML 形式であるため、出力される情報が大きくなることに注意してください。 |
-r |
このパラメーターを使用して、コマンドラインで PHP コードを実行します。 PHP の開始識別子と終了識別子 (f59d0df90952efbb3ace09d6f17169df) を追加する必要はありません。追加しないと、構文解析エラーが発生します。
|
-h | 使用该参数,您可以得到完整的命令行参数的列表及这些参数作用的简单描述。 |
PHP 的命令行模式能使得 PHP 脚本能完全独立于 WEB 服务器单独运行。如果您使用 Unix 系统,您需要在您的 PHP 脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用什么样的程序要运行该脚本。在 Windows 平台下您可以将 php.exe 和 .php 文件的双击属性相关联,您也可以编写一个批处理文件来用 PHP 执行脚本。为 Unix 系统增加的第一行代码不会影响该脚本在 Windows
下的运行,因此您也可以用该方法编写跨平台的脚本程序。以下是一个简单的PHP 命令行程序的范例。
例子 23-1. 试图以命令行方式运行的 PHP 脚本(script.php) #!/usr/bin/php82c68971946bf05db3b94f3b927e3c17This is a command line PHP script with one option. Usage: 6925e5facaaf6ccc7a8ba2dfb2f25106 5a07473c87748fb1bf73f23d45547ab8 5a07473c87748fb1bf73f23d45547ab8 can be some word you would like to print out. With the --help, -help, -h, or -? options, you can get this help.6d411e2bbda1d098e47f09cda7e0e03e |
上記のスクリプトでは、コードの最初の特別な行を使用して、ファイルが PHP によって実行される必要があることを示しています。ここでは CLI バージョンを使用しているため、HTTP ヘッダーは出力されません。 PHP でコマンド ライン アプリケーションを作成する場合、$argc と $argv の 2 つのパラメーターを使用できます。前の値は、パラメータの数より 1 大きい整数です (実行中のスクリプトの名前もパラメータとみなされます)。 2 番目にはパラメーターの配列が含まれており、その最初の要素はスクリプトの名前で、添え字は数値 0 ($argv[0]) です。
上記のプログラムでは、パラメータの数が 1 より大きいか 1 より小さいかをチェックしました。パラメータが --help、-help、-h、または -? の場合でも、ヘルプ情報を出力し、同時にスクリプトの名前を動的に出力します。他のパラメータを受信した場合は、それらも表示します。
上記のスクリプトを Unix で実行したい場合は、それを実行可能なスクリプトにして、script.php echothis または script.php -h を実行するだけです。 Windows では、このためのバッチ ファイルを作成できます:
関連する推奨事項:
コマンドラインに基づいてパラメータを指定して php スクリプトを実行し、パラメータを取得する方法
php スクリプトを実行するコマンドラインに基づくパラメータを使用してパラメータ化されたphpスクリプトとパラメータを取得する方法、php script_PHPチュートリアル
以上がPHPコマンドライン実行の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。