ホームページ >php教程 >php手册 >コマンドラインからPHPスクリプトを[パラメータ付きで]実行する方法

コマンドラインからPHPスクリプトを[パラメータ付きで]実行する方法

WBOY
WBOYオリジナル
2016-06-13 12:19:06923ブラウズ

次の PHP コードを含む単純なテキスト ファイルを作成し、hello.php として保存します。

コードをコピーします コードは次のとおりです:


echo "Hello from the CLI";
?>


次に、コマンド ライン プロンプトからこのプログラムを実行してみます。メソッドはファイル名です。これは CLI 実行可能ファイルを呼び出し、スクリプトを提供します:
#php phphello.php
CLI から Hello を出力


標準入出力を使用
これらの 3 つの定数は、独自の PHP スクリプトを使用して、ユーザー入力を受け入れたり、処理や計算の結果を表示したりできます。これをよりよく理解するには、次のスクリプト (

リスト A) を見てください。

リスト A

コードをコピー コードは次のとおりです:


// 入力を要求します
fwrite(STDOUT, "Enter your name: "); / get input
$name = trim(fgets(STDIN));

// 入力を書き戻す
fwrite(STDOUT, "Hello, $name!")>?


実行するとどうなるか見てみましょう:
shell> php hello.php

名前を入力してください: Joe
こんにちは、Joe

このスクリプトでは、 fwrite() 関数は、まず標準出力デバイスにメッセージを書き込み、ユーザーの名前を尋ねます。次に、標準入力デバイス

から取得したユーザー入力情報を PHP 変数に読み込み、文字列に結合します。次に、 fwrite() を使用して文字列を標準出力デバイスに出力します。


-----------------コマンド ライン引数の使用
プログラムの方法を変更するために、コマンド ラインにプログラム パラメータを入力するのが非常に一般的です。練習します。これは CLI プログラムでも行うことができます。 PHP CLI には、この

の目的を達成するために特別に設計された 2 つの特別な変数が付属しています。1 つは $argv 変数で、コマンドラインを通じて PHP スクリプトに渡されるパラメーターを個別の配列要素として保存します。もう 1 つは $argv 変数です。 argc 変数は、$argv 配列に

個の要素を保存するために使用されます。

PHP スクリプトで $argv を読み取り、それに含まれるパラメーターを処理するコードを記述するのは非常に簡単です。リスト B のスクリプト例を試して、どのように機能するかを確認してください。

リスト B



コードをコピーします

コードは次のとおりです。 print_r($argv);

?>


任意の値を渡してこのスクリプトを実行し、出力を確認します。

シェル> php phptest.php チョコレート 276 "キラータイ、おい!"
配列
( [0] => test.php
[1] => チョコレート
[2] => 276
[3] => キラータイ、おい!
)

出力からわかるように、test.php に渡された値が自動的に表示されます。 $argv に配列要素として格納されます。 $argvis の最初の引数は常に

スクリプト自体の名前であることに注意してください。


より複雑な例 (リスト C) を次に示します。

リスト C


コード



コードをコピーします

コードは次のとおりです: // 必要な引数をすべてチェックします

// 最初の引数は常にスクリプトの名前です。
if ($argc != 4) {
die("使用法: book.php <チェックイン日>
// 最初の引数を削除します
array_shift($argv);

// 残りの引数を取得して使用します
$checkin = $argv[0]; = $ argv[1];
$type = $argv[2];
echo "$checkin でチェックインして、$type の部屋をリクエストしました。";
?>



使用例を次に示します。

shell> 21/05/2005 7 single

2005 年 5 月 21 日にチェックインして、7 泊のシングルルームをリクエストしました。

ここで、スクリプトは最初に $argc をチェックして、引数の数が要件を満たしていることを確認します。次に、$argv から各引数を抽出し、標準出力に出力します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。