[ PHP ] コマンドラン引数を取得 ( $argc, $argv, $SERVER )

Pocket

ここでは、コマンドラインから実行された PHP スクリプトへの引数を取得するサンプルコードを掲載しています。

スポンサーリンク

コマンドライン引数を取得するサンプルスクリプト
// 引数の個数
echo "argc = $argc\n";

// 引数の値を出力する
for($i=0; $i<$argc; $i++) {
    echo "argv[$i] : $argv[$i] \n";
}
実行結果

上記のサンプルスクリプト ( param.php ) の実行結果です。詳細はコメントを参照ください。

# 引数なしの場合

D:\> /path/to/php.exe /path/to/param.php

argc = 1
argv[0] :/path/to/param.php

# 引数なしの場合でも、上記の通り実行したスクリプトのフルパスが第1パラメータとして入ってくる。

# 引数ありの場合

D:\> /path/to/php.exe /path/to/param.php aaa bbb ccc

argc = 4
argv[0] : /path/to/param.php
argv[1] : aaa
argv[2] : bbb
argv[3] : ccc

# 引数の一部にスペースを入れる場合

D:\> /path/to/php.exe /path/to/param.php "aaa aaa" bbb ccc

argc = 4
argv[0] : /path/to/param.php
argv[1] : aaa  aaa
argv[2] : bbb
argv[3] : ccc

# 引数はスペースで区切られるため、引数内にスペースを入れる場合は "" でくくって
# 引数を与える。
$_SERVER から取得する

書き方の違いだけとなりますが、変数 $argc, $argv ではなく、$_SERVER から取得することもできます。

echo "argc = " . $_SERVER['argc'] . "\n";

for($i=0; $i<$_SERVER['argc']; $i++) {
    echo "argv[$i] : " . $_SERVER['argv'][$i] . "\n";
}
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *